2015-12-08 174 views
2

我想實現一個使用原始查詢的函數,但遇到了一些麻煩。我正在嘗試做一個簡單的select * from recipes where _id = 1。我知道這行存在,因爲當我運行查詢select * from recipes時,我得到了預期的結果列表。但是當我使用where條款時,我沒有得到任何結果。如果我在數據庫的另一個表上做了where子句,我會得到預期的結果。Android原始查詢

任何人都可以告訴我我哪裏出了問題嗎?

表創建

//Recipe create statement 
private static final String CREATE_TABLE_RECIPES = "CREATE TABLE " 
     + RECIPE_TABLE + "(" 
     + KEY_ID + " INTEGER AUTO INCREMENT," 
     + KEY_CODE + " INTEGER AUTO INCREMENT PRIMARY KEY," 
     + KEY_RECIPE_NAME + " TEXT" + ")"; 

查詢

return db.rawQuery("select * from recipes where _id = 1",null); 

把結果到列表

Cursor cursor = adapter.possibleRecipes(); 


    //String[] columns = new String[] {db.KEY_NAME, db.KEY_CODE, db.KEY_ROWID}; 
    String[] columns = new String[] {adapter.KEY_RECIPE_NAME, adapter.KEY_ID}; 

    int[] to = new int[] {R.id.recipe_name, R.id.recipe_code}; 

    SimpleCursorAdapter myCursorAdapter = new SimpleCursorAdapter(this,R.layout.row1, cursor, columns, to, 0); 

    ListView recipeList = (ListView) findViewById(R.id.possibleRecipeList); 
    recipeList.setAdapter(myCursorAdapter); 
+0

我已更新上面的查詢,但沒有\ n和\ t – Hayes121

回答

1

如果我沒有記錯,自動增量沒有空間寫入。當創建一個表時,我會寫INTEGER PRIMARY KEY AUTOINCREMENT。希望能幫助到你。

+0

我試着做出你建議的更改,但現在當我嘗試運行命令它說表不存在 – Hayes121

+0

得到它的工作類型,感謝您的幫助指出我在正確的方向,將獎當我被允許時的賞金 – Hayes121

+0

謝謝!我很樂意提供幫助 – DH28

0

什麼是K EY_ID值?

此外,嘗試更換

"select * from recipes where _id = 1" 

隨着

"select * from recipes where " + KEY_ID + " = 1" 
+0

KEY_ID的列值爲_id,感謝您的建議,但這沒有什麼不同。它的表不是不存在創建KEY_CODE和KEY_CODE – Hayes121