我试图通过Android应用程序从SQLiteDB中删除记录,这是我使用代码删除记录的方式
//Snippet of code in my DBAdapter Class
public boolean DeleteRecord(String ContactName) {
Log.i(TAG, "DeleteRecord(String ContactName)");
Log.i(TAG, ContactName);
return db.delete(TABLE_SIMPLETABLE_CLIENT1,KEY_EMPLOYEE_NAME + "="
+ContactName,null);
}
从另一个类,我试图通过打开数据库并调用此方法并再次关闭数据库来调用此方法,这就是我编码的方式,
//我的DBApplication类中的代码片段
public void onClick(DialogInterface dialog,
int which) {
DBAdapter.open();
DBAdapter.DeleteRecord(DeleteRecord);
//DeletRecord is string value that in DB(Sivaram)
DBAdapter.close();
}
当我部署它时,我得到以下错误,
08-25 14:52:20.602: ERROR/AndroidRuntime(231): android.database.sqlite.SQLiteException: no such column: Sivaram: , while compiling: DELETE FROM SimpleTable1 WHERE Employee_Name=Sivaram
找到解决方案,请帮助我
提前致谢...
Edit-
Run Code Online (Sandbox Code Playgroud)
如果它首先工作,试试这个和chk
return db.delete(TABLE_SIMPLETABLE_CLIENT1,KEY_EMPLOYEE_NAME + "='"+ContactName+"'",null);
Run Code Online (Sandbox Code Playgroud)
在这里你的字符串应该在你的where子句(第3个位置)中,你只需要提到你的表名作为我相信的第二个参数
delete(String tableName, String whereClause, String[] whereArgs) {}
return db.delete(TABLE_SIMPLETABLE_CLIENT1,KEY_EMPLOYEE_NAME,new String[]{ContactName});
Run Code Online (Sandbox Code Playgroud)
我认为你已经通过了错误的查询
DELETE FROM SimpleTable1 WHERE Employee_Name=Sivaram;
Run Code Online (Sandbox Code Playgroud)
它一定是这样的.
DELETE FROM SimpleTable1 WHERE Employee_Name='Sivaram';
Run Code Online (Sandbox Code Playgroud)
核实.''是必须的Text数据类型