Android 从SQLite数据库读取时出现的问题
我对使用“游标”读取SQLite数据库的数据不太了解,但使用一些参考资料和示例,我编译了一些来设置它,我不知道为什么它会从数据库中读取,我检查数据是否使用数据库浏览器输入数据库,以及它的当前状态。有人能告诉我如何进行此操作吗 我有一个单独的类来保存db连接和查询,因为我有一个函数来获取所有具有指定值的长值的字段Android 从SQLite数据库读取时出现的问题,android,database,sqlite,Android,Database,Sqlite,我对使用“游标”读取SQLite数据库的数据不太了解,但使用一些参考资料和示例,我编译了一些来设置它,我不知道为什么它会从数据库中读取,我检查数据是否使用数据库浏览器输入数据库,以及它的当前状态。有人能告诉我如何进行此操作吗 我有一个单独的类来保存db连接和查询,因为我有一个函数来获取所有具有指定值的长值的字段 public Cursor getAppointments(long date) throws SQLException { Cursor mCursor = d
public Cursor getAppointments(long date) throws SQLException
{
Cursor mCursor =
db.query(true, DATABASE_TABLE, new String[] {
KEY_ROWID,
APP_TIME,
APP_TITLE,
},
APP_DATE + "=" + date,
null,
null,
null,
null,
null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
这段代码要做的是获取所有记录,这些记录以相应的日期作为查询值并返回
现在在main类中,我有了这些代码,可以在Textview中逐行捕获和显示
db.open();
Display.setText("");
Cursor c = db.getAppointments(SDate);
if (c.moveToFirst())
Display.setText(DisplayTitle(c));
else
Toast.makeText(this, "No title found",
Toast.LENGTH_LONG).show();
db.close();
显示标题的方法是
private String DisplayTitle(Cursor c) {
String Final ="";
Final = c.getString(1) + " " +c.getString(2) + " " + c.getString(3) + "\n" ;
return Final;
}
有人能告诉我,为了检索与日期具有相同长值的记录并在textview中显示它,需要做哪些更改吗?可以有多个具有相同长值的记录,因此必须检索具有相同长值的所有记录并在textview中显示
干杯,渴望快速回复。:) 您已开始从DisplayTitle方法中的索引1读取光标。应该是0。分别表示c.getString(0)和。使用游标的简单方法:
String q = "SELECT * FROM DATABASE_TABLE where(APP_DATE like '"+date+"')";//your query
Cursor c = db.rawQuery(q, null); // db is a object of SQLiteDatabase type
然后,如果您不确定列索引,请使用列名称和getColumnIndex()方法检索相应列的值,如:
if(c.getCount() == 0)
{
//No entry found
}
else {
c.moveToFirst();
do {
String mail = c.getString(c.getColumnIndex("KEY_ROWID"))+c.getString(c.getColumnIndex("APP_TIME"))+c.getString(c.getColumnIndex("APP_TITLE"));
// do whatever you like with each record
} while (c.moveToNext());
c.close();
db.close();
我尝试了,但我得到了数组超出索引边界的异常,并说游标为空Sok,然后作为上面提到的imran,尝试一个原始查询并检查游标大小计数。