繁体   English   中英

如何从Android中的SQLite数据库中获取数据

[英]How to get data from SQLite databse in 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,title,date,time,descrption)。 并有4个原料。 该表是在另一个类中创建的

当我运行此应用程序时,它不会从sql表中获取数据并在listview中显示它。 当我调试它时,它显示i=1 ,它返回false给if (cur.moveToFirst()) 因此,它不走这里面if部分。

我的错误是什么?

在你的约会对象附近放置撇号(')

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

NB我假设你的表创建和其他字段名称是准确的。 还要重新检查一下

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

Cursor cur=db.rawQuery("SELECT " +TITLE+  " FROM " +TABLE_NAME + " WHERE " + CDATE + " = ?", new String[] { date });
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());
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM