类型不匹配:无法从void转换为int

时间:2014-09-09 15:09:57

标签: java android int void

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进行编码。我在编码时遇到了这个错误。我甚至没有运行代码。

2 个答案:

答案 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()