Android Sqlite数据库没有更新数据?

时间:2017-08-14 17:56:51

标签: android sqlite

我正在使用此代码更新值

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

这是我用来更新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) {

        }
    }

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

你能试试吗,

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

什么是V,是特定的名字,I thingk,你可以尝试使用id来更新,这更有效。

更改为

indent=None

但是,如果你没有更新,请清理你的项目并重建,这可能有用。如果这没有帮助,请发给你logcat。