0

我想从我使用我的应用程序创建的数据库中获取一些数据。这是我的代码

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部分。

我的错误可能是什么?

4

3 回答 3

1

在您的日期周围放置撇号 (')

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

注意我假设您的表创建和其他字段名称是准确的。还要重新检查那些

于 2013-04-16T03:36:24.323 回答
1

使用选择参数,您将避免大量问题:

Cursor cur=db.rawQuery("SELECT " +TITLE+  " FROM " +TABLE_NAME + " WHERE " + CDATE + " = ?", new String[] { date });
于 2013-04-16T03:41:04.210 回答
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());
    }
于 2013-04-16T04:14:43.453 回答