2011-10-30 115 views
0

我想返回数据库中具有其中一个字段中的属性等于方法参数的行。我的代码是:如何正确构建此SQL查询

public Cursor fetchStatus(String status){ 
    Cursor mCursor = 

      mDb.query(DATABASE_TABLE, new String[] {KEY_COMPANY, KEY_POSITION, KEY_NOTES, KEY_WAGE, KEY_STATUS}, 
        KEY_STATUS+ "= "+status, null, null, null, null) 
      ; 
    if(mCursor!=null) mCursor.moveToFirst(); 
    return mCursor; 
} 

我想要回KEY_COMPANY,KEY_POSITION,KEY_NOTES,KEY_WAGE和KEY_STATUS列,其中KEY_STATUS等于参数 '状态'

+0

哪个数据库(mySQL,Oracle,SQL服务器等) –

+0

这是我尝试过的代码,它没有给出“SQLiteException近”的错误:“syntax error:..”。数据库是SQLite3,我的应用程序是一个Android应用程序 – Shane

+1

你试过rawQuery吗? 'mDb.rawQuery(“sql语句”,null);'你的代码似乎是正确的。 – abhinav

回答

1

也许你可以尝试这样的事:

public object GetValues (string status) 
{ 
    string query = "SELECT KEY_COMPANY, KEY_POSITION, KEY_NOTES, KEY_WAGE,KEY_STATUS 
    FROM DATABASE_TABLE 
    WHERE KEY_STATUS = "'" +status+ "'" " ; 

    dbcomands part... 

    List<object> = execute db comand.... 
} 

您在您的评论中指定的错误可能是由于缺乏'在您查询造成的。只是一个想法。

+0

这工作,谢谢。我不知道你需要使用这样的单引号 – Shane