我有一个SQL表,如下所示:
ID(string) Name(string) Width(double) Height(double) Selected(int)
12345678 Book 210 297 1
12345679 Display 530 326 0
12345680 Phone 70 140 0
我可以通过传递一个字符串参数来按ID和名称查询它们,但所有int和double查询都返回null。为什么?
这是我尝试过的代码:
Cursor cursor = mDatabase.query( "Objects",null, "Selected" + " = ?", new String[]{String.valueOf(1)},null,null,null);
ObjectDataBase.ObjectCursor objectCursor = new
ObjectDataBase.ObjectCursor(cursor);
try {
if (objectCursor.getCount() == 0) { return null; }
objectCursor.moveToFirst();
return objectCursor.getObject();
} finally { cursor.close();}
ObjectDataBase
是数据库类,ObjectCursor
是游标包装和ObjectDataBase
的内部类。
当我使用DB浏览器浏览数据库时,数据是正确的,那么还会有什么错误呢?
发布于 2019-05-30 05:29:21
当我使用DB浏览器浏览数据库时,数据是正确的,那么还会有什么错误呢?
a) DB浏览器中的数据可能不是设备上的数据。
比如
Cursor cursor = mDatabase.query("Objects",null, "Selected" + " = ?", new String[]{String.valueOf(1)},null,null,null);
Log.d("CURSORINFO","The Cursor has " + String.valueOf(cursor.getCount()) + " rows."); //<<<<<<<<<< 4 DEBUG
DatabaseUtils.dumpCursor(cursor); //<<<<<<<<<< 4 DEBUG
ObjectDataBase.ObjectCursor objectCursor = new
ObjectDataBase.ObjectCursor(cursor);
try {
if (objectCursor.getCount() == 0) { return null; }
objectCursor.moveToFirst();
return objectCursor.getObject();
} finally { cursor.close();}
b)在try子句中包装代码
返回rv = null;if (objectCursor.moveToFirst()) { rv = objectCursor.getObject();} cursor.close();ObjectType rv;
c)游标包装代码未正确赋值。
https://stackoverflow.com/questions/56361411
复制相似问题