我正在检查sqlLite表记录是否可用,它给了我记录可用,即使它不是
public void checkIfExcist(Context mCtx, String recordName, String ValueCheck) {
DatabaseHelper mDbHelper = new DatabaseHelper(mCtx);
SQLiteDatabase mDb = mDbHelper.getWritableDatabase();
Cursor mCursor = mDb.rawQuery("SELECT * FROM " + SQLITE_TABLE
+ " WHERE " + recordName + " ='" + ValueCheck + "'", null);
if (mCursor != null) {
Toast.makeText(mCtx, "Available", 3000).show();
/* record exist */
} else {
Toast.makeText(mCtx, "Not Available", 3000).show();
/* record not exist */
}
}
答案 0 :(得分:1)
检查记录计数是否大于0,而不是检查游标的无效性 换句话说,改变这个
if (mCursor != null) {
到这个
if(mCursor.getCount() > 0) {
答案 1 :(得分:0)
rawQuery
将始终返回cursor
,即使它为空(与null
不同)。这就是为什么它总是会通过您的null
支票。
This应该回答你的问题。