2013-04-16 9 views
0

Я хочу получить некоторые данные из моей базы данных, которые я создал с помощью моего приложения. Вот мой кодКак получить данные из базы данных SQLite в Android

protected void onCreate(Bundle savedInstanceState){ 
super.onCreate(savedInstanceState); 
setContentView(R.layout.select_to_delete); 

database = new DatabaseHandler(this); 

bundle = getIntent().getExtras(); 
date = bundle.getString("DATE"); 

SQLiteDatabase db=database.getWritableDatabase(); 

Cursor cur=db.rawQuery("SELECT " +TITLE+ " FROM " +TABLE_NAME + " WHERE " + CDATE + "=" + date,null); 


int i = cur.getCount(); 


if(cur !=null){ 
    if (cur.moveToFirst()){ 
      do{ 
       tdate = cur.getString(cur.getColumnIndex("DATE")); 
       titlearray.add(tdate); 
      }while(cur.moveToNext()); 
     } 

} 

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, titlearray); 

ListView listView = (ListView) findViewById(R.id.listView1); 
listView.setAdapter(adapter); 
} 

В моей таблице 5 столбцов (id, название, дата, время, дескрипция). и имеют 4 сырья. Таблица создана в другом классе.

Когда я запускаю это приложение, он не получает данные из таблицы sql и не показывает их в списке. Когда я его отлаживаю, он показывает i=1, и он возвращает false в if (cur.moveToFirst()). Таким образом, это не входит в часть if.

В чем может быть моя ошибка?

+0

Если вы хотите существующую базу данных, выполните следующее: http://stackoverflow.com/questions/9109438/ как работать с существующими базами данных с андроидным приложением/9109728 # 9109728 –

ответ

1

место апостроф (') вокруг даты

Cursor cur=db.rawQuery("SELECT " +TITLE+ " FROM " +TABLE_NAME + " WHERE " + CDATE + "='" + date+"'",null); 

нотабене Я предполагаю, что ваше создание таблицы и другие имена полей точны. Также перепроверить эти

+1

он работает. thankyou – Ravindu

+0

приветствуется :) – stinepike

1

выбора Используйте арг и вы будете избегать тонн проблем:

Cursor cur=db.rawQuery("SELECT " +TITLE+ " FROM " +TABLE_NAME + " WHERE " + CDATE + " = ?", new String[] { date }); 
+0

какая разница ??? и что это за новая String []? – Ravindu

+0

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#rawQuery(java.lang.String, java.lang.String []) –

0
SQLiteDatabase db = this.getReadableDatabase(); 

     Cursor cursor = db.query(TABLE_NAME, new String[] { TITLE}, CDATE + "=?", 
       new String[] { String.valueOf(date) }, null, null, null, null); 
     if (cursor.moveToFirst()) { 
     do { 
      //add to the array 
     } while (cursor.moveToNext()); 
    } 
Смежные вопросы