android sqlite 删除查询不工作

标签 android database sqlite

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

Android Sqlite表结构

 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 保留为文本而不是整数。

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

        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 + " = ?", new String[] { bus_num });

关于android sqlite 删除查询不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25328565/

相关文章:

android - 在 NestedScrollView 中带有 anchor 的 Webview

android - 偏好项上的重复联系人

database - 我如何从 Yahoo! 获取和比较股票报价?和谷歌?

c++ - 枚举替代品

浮点类型和顺序的 SQLite 问题

ios - ITMS-90809:不推荐使用的API使用情况(UIWebView)

android - 如何将相机捕获的图像传递到android中的下一个屏幕?

android - 为什么 Activity getIntent().getExtras() 有时会返回 null?

php - fatal error : Call to a member function bind_param() on a non-object

java - 如何用Java设计2/3层分布式应用程序?