我正在使用此方法调用将从sqlite数据库中搜索视频名称的查询。作为回报,当视频名称存在时,我会获得Row_id_2的值,但是当没有找到任何视频名称时,我什么也得不到。请让我知道我该怎么办?如果没有找到,我想要一些事件..没有错误没有警告。
public String seeVideoEntry(String VideoName) {
Cursor cursor = ourDatabase.query(Table_Name_2, new String[] {
Row_Id_2, Row_VideoName, Row_VideoCapturedTime, Row_VideoUrl,
Row_VideoDate, Row_VideoUri }, Row_VideoName + "=?",
new String[] { VideoName }, null, null, null, null);
try {
if (cursor != null) {
cursor.moveToFirst();
Log.e("Test1", VideoName);
}
} catch (Exception e) {
e.printStackTrace();
}return cursor.getString(cursor.getColumnIndex(Row_Id_2));
}
答案 0 :(得分:5)
如果光标为空,此方法将返回false。
您必须检查moveToFirst()
的返回值:
public String seeVideoEntry(String videoName) {
Cursor cursor = ourDatabase.query(Table_Name_2,
new String[] { Row_Id_2 },
Row_VideoName + "=?",
new String[] { videoName },
null, null, null, null);
if (cursor.moveToFirst()) {
return cursor.getString(0);
} else {
return "not found";
}
}