2017-03-07 68 views
0

我的代码:的Android的SQLite中删除一行

public void droptablecontents(String category) 
{ 
    SQLiteDatabase db = this.getWritableDatabase(); 
    String query = "DELETE FROM " + Table_Name + " WHERE " + KEY_CAT + "=" + category; 
    Cursor cursor = db.rawQuery(query, null); 
    cursor.moveToFirst(); 
    cursor.close(); 
} 

我的表的创建语句:

"CREATE TABLE IF NOT EXISTS " + Table_Name + "(" + KEY_NOTE + " TEXT, " + KEY_CAT + " TEXT" + ")" 

我的日志猫错误:

android.database.sqlite.SQLiteException: no such column: Ideas (code 1): , while compiling: DELETE FROM Cats WHERE cat=Ideas 

但为什么它寻找一个列命名为'想法'?我正在尝试在KEY_CAT列中搜索值'Ideas'。

+0

'String [] params = new String [] {contact_no}; Cursor c = db.rawQuery(“DELETE FROM + Table_Name +”WHERE“+ KEY_CAT +”=?“, params);' –

+0

**”从“+ Table_Name +”中删除其中“+ KEY_CAT +”(“ +类别+“)”** 试试这个查询 –

回答

-1

添加“'”为条件,它是文本。

public void droptablecontents(String category) 
{ 
    SQLiteDatabase db = this.getWritableDatabase(); 
    String query = "DELETE FROM " + Table_Name + " WHERE " + KEY_CAT + "='" + category + "'"; 
    Cursor cursor = db.rawQuery(query, null); 
    cursor.moveToFirst(); 
    cursor.close(); 
} 
+0

当这个值包含一个报价时,这将会爆炸。 –