Android:如何将ExecuteScalar移植到Java?

时间:2011-09-08 13:15:34

标签: c# java android sqlite sql-server-express

  

SqlCommand.ExecuteScalar Method
  执行查询,然后返回   由结果集返回的结果集中第一行的第一列   查询。其他列或行将被忽略。

我想这将涉及大量使用泛型。

假设我有SQLiteDatabase / Cursor个对象。

4 个答案:

答案 0 :(得分:2)

查看SQLLiteStatement

  

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();