2012-02-19 5 views
1

Я пытаюсь написать запрос для извлечения данных из базы данных SQLite. Я хотел напечатать результат запроса в текстовом поле. Поэтому я использовал метод getint() для курсора. Ниже мой код. Он не запускается в моем эмуляторе Android. Это правильный способ написать запрос? Он не показывает ошибок.Запись запроса базы данных Sqlite

import android.app.Activity; 
import android.os.Bundle; 
import android.app.Activity; 
import android.database.Cursor; 
import android.database.sqlite.*; 
import android.os.Bundle; 
import android.widget.TextView; 
import android.widget.Toast; 

public class SQLDemo1Activity extends Activity { 
    private SQLiteDatabase db; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    try{ 
     db= SQLiteDatabase.openDatabase(
     "/data/data/cis493.sqldatabases/databases/multilinguialdatabase.sqlite", 
     null, 
     SQLiteDatabase.CREATE_IF_NECESSARY); 
     db.beginTransaction(); 
     Cursor cursor = db.query(
     "colors" /* table */, 
     new String[] { "ID" } /* columns */, 
     "English = ?" /* where or selection */, 
     new String[] { "green" } /* selectionArgs i.e. value to replace ? */, 
     null /* groupBy */, 
     null /* having */, 
     null /* orderBy */ 
    ); 
     int id = cursor.getInt(0); 
     TextView met = (TextView) findViewById(R.id.t1); 
     met.setText(id); 
     db.endTransaction(); 
     db.close(); 
    } 
    catch(SQLiteException e) { 
     Toast.makeText(this, e.getMessage(), 1).show(); 
    } 
    } 
} 
+0

какая ошибка вы получаете? – Snicolas

+1

О, и, кстати, ваш идеал не нуждается в вас, чтобы отступывать ваш код. Ваш компилятор ему не нужен. Но программисту, может быть, вам или нам, это нужно. – Snicolas

ответ

1

Вам нужно положить cursor.moveToNext() или cursor.moveToFirst(), прежде чем пытаться получить Int с GetInt(). Поместите его в оператор if, поскольку в курсоре не может быть никаких результатов.

2

Чтобы написать запрос в Android Sqllite требует определенных параметров, таких как:

// Запрашивает пользовательский словарь и возвращает результаты mCursor = getContentResolver() запрос (

URI         // The content URI of the words table 
mProjection,      // The columns to return for each row 
mSelectionClause     // Selection criteria 
mSelectionArgs,      // Selection criteria 
mSortOrder);      // The sort order for the returned rows 

Для более подробной информации читайте Android. Сайт разработчика: http://developer.android.com/guide/topics/providers/content-provider-basics.html

Смежные вопросы