数据获取查询中的数据库类错误

时间:2013-09-25 06:31:32

标签: android sql database sqlite

我正在Android中开发一个应用程序,在这里我想根据rowIdsubjectId从表中获取数据,但我收到此错误,

The method query(boolean, String, String[], String, String[], String, String, String, String) in the type SQLiteDatabase is not applicable for the arguments 
(boolean, String, String[], String, String, null, null, null, null)

这就是查询,

public Cursor getText(long rowId, long subId) throws SQLException 
{
Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] {
        KEY_id, KEY_ques,KEY_correctans,KEY_wrongans1,KEY_wrongans2,KEY_wrongans3,KEY_subject,KEY_subjectid }, KEY_id + "="
        + rowId, KEY_subjectid + "=" + subId,null,null, null,null);
if (mCursor != null) 
{
    mCursor.moveToFirst();
}
return mCursor;
}

我想在subId = KEY_subjectidrowId = KEY_id

的位置获取表格数据

如果在这个问题上有任何不明确的地方,请问我。如果它明确请帮助我..

先谢谢。

2 个答案:

答案 0 :(得分:1)

将查询更改为以下内容:

Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] {
        KEY_id, KEY_ques,KEY_correctans,KEY_wrongans1,KEY_wrongans2,KEY_wrongans3,KEY_subject,KEY_subjectid }, KEY_id + "="
        + rowId + " AND " + KEY_subjectid + "=" + subId,null, null,null, null,null);

第5个参数需要是一个String数组,而不是你拥有的字符串。第4个参数是WHERE SQLite子句。

答案 1 :(得分:0)

这样做

public Cursor getText(long rowId, long subId) throws SQLException 
    {
    Cursor mCursor = db.rawQuery("select * from "+DATABASE_TABLE+" where KEY_subjectid="+subId+" and KEY_id="+rowId+"",null);
    if (mCursor != null) 
    {
        mCursor.moveToFirst();
    }
    return mCursor;
    }