Android Sqlite数据库更新错误
更新DB raw的一段代码: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,
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的字符串和引号非常多变。谢谢,这完全是疏忽大意。