【问题标题】:Android Sqlite database is not updating the data??Android Sqlite 数据库没有更新数据??
【发布时间】:2017-08-14 17:56:51
【问题描述】:

我正在使用此代码来更新值

此代码正常工作而没有错误查询中没有错误但是当我在更新它显示旧数据后显示数据时??

这是我用来更新 sqlite 中数据的代码。

  @Override
    public void onClick(View v) {
        if (v == Update) {
            try {
                ContentValues CV = new ContentValues();
                CV.put("cname", EditName.getText().toString());
                CV.put("mobileno", EditMobile.getText().toString());
                CV.put("phone", EditLandline.getText().toString());
                CV.put("address", EditAddress.getText().toString());
                CV.put("email", EditEmail.getText().toString());
                CV.put("picture", Editbytes);
                DB.update("contacts", CV, "cname=" + V,null);

                Intent I = new Intent(ctx, ContactList.class);
                ctx.startActivity(I);


                // DB.execSQL("insert into contacts values('" + Name.getText() + "','" + Mobile.getText() + "','" + Phone.getText() + "','" + Add.getText() + "','" + Email.getText() + "')");
                Toast.makeText(ctx, "Contact Updated...",Toast.LENGTH_LONG).show();

            } catch (Exception e) {
                Toast.makeText(ctx, "Fail to Update Contact.." + e, Toast.LENGTH_LONG).show();

            }

        } else if (v == Delete) {

        }
    }

【问题讨论】:

  • 更新你的数据库版本可能会解决问题
  • 请添加更多信息,如 SQLite 版本、数据库配置等。
  • 请添加完整的文件列表和 gradle 依赖项列表。如果DB 类也是你的,也添加它的列表。
  • 我使用的是 1.12.0 sqlite 版本
  • DB 不是 SqliteDatabase 变量的类

标签: android sqlite


【解决方案1】:

你可以试试这个,

DB.update("contacts", CV, "cname=" + V,null);

V是什么,是那个特定的名字,我想,你可以尝试使用id来进行udapte,这样更有效。

改成

SQLiteDatabase db = dbHelper.getWritableDatabase();
db.update("contacts", CV, "cid=" + "=" + id, null);
db.close(); // Closing database connection

但是,如果您不更新,请清理您的项目并重新构建,这可能会起作用。如果这没有帮助,请发布您的 logcat。

【讨论】:

  • V 是一个字符串,我也尝试过使用 id 但这也不起作用
【解决方案2】:

WHERE 子句是否有可能不匹配任何行?

您可以在控制台上测试您的状况:

Log.i(db.execSQL("SELECT * FROM contacts WHERE cname=" + V));

但我认为最好的测试方法是直接连接到数据库:

  • 在 Android Studio 上打开终端(查看 > 工具窗口 > 终端)
  • 输入adb shell(如果命令失败,请将您的adb 安装添加到PATH 变量中)
  • 数据库文件通常存放在/data/data/com.your.package/database/
  • 运行 sqlite3 /data/data/com.your.package/database/YourAPP.db 打开一个提示,您可以在其中运行所有 SQL 命令

Another good answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    相关资源
    最近更新 更多