[英]No data in cursor
我有一个可以在SQLITE数据库中读写的应用程序。
public void insertkind(int id, String name, String geburtsdatum, String geschlecht){
long rowId = 1;
try{
SQLiteDatabase db = getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(NAME, name);
cv.put(GEBURTSDATUM, geburtsdatum);
cv.put(GESCHLECHT, geschlecht);
try{
rowId = db.insert(TABLE_NAME_KIND, null, cv);
}
catch(Exception e){
System.out.println("DES DERF MA NEEEEEEEEEEED SENG!!!!");
}
db.close();
}
catch (SQLiteException e){
Log.e(TAG, "insert()", e);
}
finally{
Log.d(TAG, "rowId");
}
}
使用以下代码,我想从数据库中选择数据:
public Cursor select(){
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.query(TABLE_NAME_KIND, new String[] {"_id", "name", "geburtsdatum", "geschlecht"},
"" + "", null, null, null, null);
System.out.println(cursor.getCount());
return cursor;
}
我还在其他应用程序中使用了类似的代码。 我的问题是cursor.getCount()
为0,但是插入数据时没有异常。 name
, geburtsdatum
和geschlecht
都有一些值。
我无法使用adb检查数据库,因为它在我的计算机上不起作用。 问题是什么?
如果cursor.getCount()
的值为0,则查询将在数据库上执行。
我认为问题可能出在where子句中,请尝试将null
设置为"" + ""
Cursor cursor = db.query(TABLE_NAME_KIND, new String[] {"_id", "name", "geburtsdatum", "geschlecht"}, null, null, null, null, null);
我相信Jurac发表的内容行之有效,但只有几个问题:
如果您尝试使用列出的4个列名来获取所有行而不进行任何过滤,则可以,传递null。
或者,尝试使用原始查询
String queryString = "SELECT 1 FROM TABLE_NAME_KIND";
游标cursor = db.rawQuery(queryString,null);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.