2015-12-08 119 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