SqlCommand.ExecuteScalar Method
执行查询,然后返回 由结果集返回的结果集中第一行的第一列 查询。其他列或行将被忽略。
我想这将涉及大量使用泛型。
假设我有SQLiteDatabase / Cursor个对象。
答案 0 :(得分:2)
long simpleQueryForLong()
执行一个返回1的语句 带有数值的表。
String simpleQueryForString()
执行一个返回带有文本值的1 x 1表的语句。
答案 1 :(得分:2)
这个逻辑对我有用:
public int ExecuteScalar(/* code...*/) {
Cursor cursor = database.rawQuery(sql, selectionArgs);
try {
cursor.moveToNext();
int val = cursor.getInt(0);
cursor.close();
return val;
}
catch (Exception e) {
/* code...*/
}
return -1;
}
答案 2 :(得分:0)
如果您正在检索主键,那么您可以使用语句getGeneratedKeys方法,该方法在插入后返回生成的键的resultSet。
答案 3 :(得分:0)
为数据库对象提供db
long result = db.compileStatement("select count(*) from some_table").simpleQueryForLong();