Как вытащить одну строку из базы данных - PullRequest
1 голос
/ 13 февраля 2011

В настоящее время у меня есть код ниже, он работает нормально, пока я не попытаюсь физически вызвать запрашиваемые данные.Также может кто-то привести пример того, как запросить один идентификатор с помощью предложения WHERE.Я пытался, но это вызывает ошибку, прежде чем я могу даже попытаться вытащить что-нибудь обратно.

Вся помощь оценена.Макс

String questionval;
    String answer1val;
    String answer2val;
    private final String SAMPLE_DB_NAME = "QnA";
    private final String SAMPLE_TABLE_NAME = "friends";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        SQLiteDatabase db;
        db =  this.openOrCreateDatabase(SAMPLE_DB_NAME, MODE_PRIVATE, null);

        db.execSQL("CREATE TABLE IF NOT EXISTS " +
                SAMPLE_TABLE_NAME +
                " (ID INT(3), Questions VARCHAR, Answer1 VARCHAR," +
                " Answer2 VARCHAR, Answer3 VARCHAR," +
                " Answer4 VARCHAR, CorrectAnswer INT(1), Reason VARCHAR);");

        db.execSQL("INSERT INTO " +
                SAMPLE_TABLE_NAME +
                " Values ('1','" +
                "Question?'," +
                "'Answer1'," +
                "'Answer2'," +
                "'Answer3'," +
                "'Answer4'," +
                "'2'," +
                "'Reason');");

        Cursor c = db.rawQuery("SELECT * FROM " +
                SAMPLE_TABLE_NAME , null);


                    questionval = c.getString(c.getColumnIndex("Question"));
                    answer1val = c.getString(c.getColumnIndex("Answer1"));
                    answer2val = c.getString(c.getColumnIndex("Answer2"));

Ответы [ 2 ]

4 голосов
/ 13 февраля 2011

Вам нужно позвонить moveToFirst() на Cursor, прежде чем пытаться получить доступ к вашей строке.

1 голос
/ 13 февраля 2011

Вы можете получить значение следующим образом.

Vector temp = null;

// Fetch the values from database
    Cursor c = sampleDB.rawQuery("SELECT * FROM " + Constants.TABLE_NAME,
                    null);

// Extract the values
            if (c != null) {

                if (c.moveToFirst()) {
                    do {

                        temp = new Vector();
// Title was the field(column) name of the  table
                    temp.addElement(c.getString(c.getColumnIndex("Title")));

// Description was the field(column) name of the table      
                        temp.addElement(c
                                .getString(c.getColumnIndex("Description")));

                    } while (c.moveToNext());
                }
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...