错误代码:1(SQLITE_ERROR) 引起:SQL(查询)错误或缺少数据库。 (接近" =&#34 ;:语法错误(代码1):,编译时:DELETE FROM notesWHEREid =' 1')
这是我得到的错误:
这是我的数据库处理程序的一部分,它是此错误的来源:
public void deleteNote(String id) {
SQLiteDatabase db = this.getWritableDatabase();
String deleteQuery="DELETE FROM " + DatabaseValues.TABLE_NOTES + "WHERE" + DatabaseValues.NOTES_ID + "= '" + id + "'";
db.execSQL(deleteQuery);
db.close();
}
答案 0 :(得分:2)
如果您使用的是C#6.0,使用插值字符串可以使字符串连接更加轻松,避免出现这种愚蠢的错误:
String deleteQuery= $"DELETE FROM {DatabaseValues.TABLE_NOTES} WHERE {DatabaseValues.NOTES_ID} = id";
注意:$运算符在C#6.0中可用。另外,您应该查看how to build parameterized queries,因为传递这样的参数会让您感到SQL injection。
答案 1 :(得分:1)
更改以下声明:
String deleteQuery="DELETE FROM " + DatabaseValues.TABLE_NOTES + "WHERE" + DatabaseValues.NOTES_ID + "= '" + id + "'";
到
String deleteQuery= "DELETE FROM " + DatabaseValues.TABLE_NOTES + " WHERE " + DatabaseValues.NOTES_ID + " = '" + id + "'";
实际上,您正在将表名与where子句组合在一起。您需要在WHERE Clause之前和之后添加一个空格,如“Where”
希望它有所帮助。