Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Sqlite数据库更新错误_Android_Sqlite - Fatal编程技术网

Android Sqlite数据库更新错误

Android Sqlite数据库更新错误,android,sqlite,Android,Sqlite,更新DB raw的一段代码: private EditText et; //... private void updateRecipe(){ SQLiteDatabase db=recipes.getWritableDatabase(); ContentValues values=new ContentValues(); values.put(RECIPE, et.getText().toString()); db.update(RECIPES_TABLE, values,

更新DB raw的一段代码:

private EditText et;
//...
private void updateRecipe(){
  SQLiteDatabase db=recipes.getWritableDatabase();
  ContentValues values=new ContentValues();
    values.put(RECIPE, et.getText().toString());
  db.update(RECIPES_TABLE, values, "id=?", new String[]{id});
}
运行时,出现错误:

Error updating recipe=Efrerer using UPDATE recipes SET recipe=? WHERE id=?
android.database.sqlite.SQLiteException: no such column: id: , while compiling: UPDATE    recipes SET recipe=? WHERE id=?
以下是我的SQL查询:

  @Override
  public void onCreate(SQLiteDatabase db){
      db.execSQL("CREATE TABLE "+CATEGORY_TABLE+" ("+_ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+
              CATEGORY_NAME+" TEXT NOT NULL);");    

      db.execSQL("CREATE TABLE "+RECIPES_TABLE+" ("+_ID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+
              RECIPE_NAME+" TEXT NOT NULL, "+CATEGORY_ID+" INTEGER, "+ RECIPE+" TEXT NOT NULL);");
  }
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){

      db.execSQL("DROP TABLE IF EXISTS "+CATEGORY_TABLE);
      db.execSQL("DROP TABLE IF EXISTS " +RECIPES_TABLE);
  }

请发布用于创建db的语句。看起来您只是没有创建适当的列


您只需检查_ID变量包含的值。它是否与您在update语句中使用的所需“id”有所不同?

此错误可以通过将
的“id=”+“
用作WHERE子句来解决。
Droids SQLite API的字符串和引号非常多变。

谢谢,这完全是疏忽大意。