Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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_Database_Sqlite - Fatal编程技术网

android sqlite删除查询不工作

android sqlite删除查询不工作,android,database,sqlite,Android,Database,Sqlite,以下sqlite查询不会删除以零开头的ID androidsqlite表结构 String CREATE_TABLE_BUS = "CREATE TABLE " + TABLE_BUS + "(" + KEY_TID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_BUS_NUM + " TEXT," + KEY_BUS_N

以下sqlite查询不会删除以零开头的ID

androidsqlite表结构

 String CREATE_TABLE_BUS = "CREATE TABLE " + TABLE_BUS + "("
                    + KEY_TID + " INTEGER PRIMARY KEY AUTOINCREMENT,"    
                    + KEY_BUS_NUM + " TEXT,"
                    + KEY_BUS_NAME + " TEXT,"
                    + KEY_FROM + " TEXT,"
                    + KEY_TO + " TEXT,"
                    + KEY_TYPE + " TEXT"
                    + ")";

            db.execSQL(CREATE_TABLE_BUS);
出于某种目的,我将BUS_NUM保留为文本,而不是int

这是我用来删除一行的函数

        public void Delete_Bus(String bus_num) {
            SQLiteDatabase db = this.getWritableDatabase();

            db.delete(TABLE_BUS, KEY_BUS_NUM+"="+bus_num , null);
              Log.e("deleting bus num", bus_num);

            db.close(); // Closing database connection
        }
当代码不是以零开头时,此代码工作得非常好


它适用于76555,不适用于09877。我的代码有什么问题

此代码生成的查询结果如下:

DELETE FROM BusTable WHERE BusNum = 012345
数据库将把它解释为一个数字,而不是一个字符串

在SQL中,字符串必须加引号:

DELETE FROM BusTable WHERE BusNum = '012345'
但是,您可以通过使用参数避免格式化字符串:

db.delete(TABLE_BUS,KEY_BUS_NUM+“=?”,新字符串[]{BUS_NUM});
也许

public void Delete_Bus(String bus_num)
{
    SQLiteDatabase db=this.getWritableDatabase();
    db.execSQL("DELETE FROM "+TABLE_BUS+" WHERE "+KEY_BUS_NUM+"='"+bus_num+"'");
    db.close();
}

谢谢你的努力。选民们应该在这里描述原因。为什么以及是谁做的通常最好解释一个解决方案,而不是仅仅发布几行匿名代码。你可以阅读,也可以阅读
    public void Remove_Bookmarked(Bookmark bookmark) {
    SQLiteDatabase db = this.getReadableDatabase();
    db.delete(Bookmark_TABLE_NAME, COL_ID_CONTENT + "= ? and " + COL_TYPE + " = ?", new String[]{String.valueOf(bookmark.getId_content()), String.valueOf(bookmark.getType())});

}