以下方法出现错误。
我想做一个SELECT WHERE
声明。
我的目标是知道变量名是否已经在我的数据库中。
错误似乎发生在statement.execute();
,它是:-
"Caused By : unknown error (code 0): Queries can be performed using SQLiteDatabase query or rawQuery methods only. "
该程序以前已经正常运行过很多次,但现在却没有。
方法是:-
public int count(String name) {
SQLiteDatabase database = getWritableDatabase();
String countQuery = "SELECT * FROM myBD WHERE NAME1 = ?";
SQLiteStatement statement = database.compileStatement(countQuery);
statement.clearBindings();
statement.bindString(1, name);
statement.execute();
//database.close();
SQLiteDatabase db = this.getReadableDatabase();enter code here
Cursor cursor = db.rawQuery(countQuery, null);
int count = cursor.getCount();
cursor.close();
database.close();
return count;
}
答案 0 :(得分:0)
您可以使用查询便捷方法,例如:-
public int count(String name) {
SQLiteDatabase database = getWritableDatabase();
String whereclause = "NAME1=?";
String[] whereargs = new String[]{name};
Cursor cursor = database.query("myBD",null,whereclause,whereargs,null,null,null);
int count = cursor.getCount();
cursor.close();
database.close();
return count;
}
未知错误通常与之后的行有关; 便捷方法包含参数并代表您构建SQL。
答案 1 :(得分:0)
您也可以使用 database.rawQuery(“此处的查询”);