public int countContacts() {
String query = "select count(name) from contacts";
int count = db1.execSQL(query); // I got error at this line
return count;
}
我试图通过使用上面的代码来计算表中的行数。但是我得到了这个错误 - "类型不匹配:无法从void转换为int"。为什么我收到此错误以及如何更正?
更新:
db1是SQLiteDatabase。
我使用Eclipse进行编码。我在编码时遇到了这个错误。我甚至没有运行代码。
答案 0 :(得分:1)
您无法将execSQL用于select
。
来自SQLiteDatabase的Android SDK documentation:
execSQL(String sql):执行一个不是的SQL语句 SELECT或任何其他返回数据的SQL语句。
您可以尝试:
//Query
String query = "select COUNT from contacts where name = ?";
Cursor cursor = db1.rawQuery(query, new String[] {name});
if(cursor.getCount()<1) // title Not Exist
{
cursor.close();
return 0;
}
cursor.moveToFirst();
int count = cursor.getInt(cursor.getColumnIndex("COUNT"));
cursor.close();
return count;
答案 1 :(得分:0)
您应该使用rawQuery
代替。
或compileStatement(sql).simpleQueryForLong()