我正在使用此代码更新值
此代码工作正常,没有错误查询中没有错误,但是当我更新显示旧数据后显示数据?
这是我用来更新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) {
}
}
答案 0 :(得分:1)
WHERE子句是否有可能与任何行匹配?
您可以在控制台上测试您的病情:
Log.i(db.execSQL("SELECT * FROM contacts WHERE cname=" + V));
但我认为测试它的最佳方法是直接连接到数据库:
adb shell
(如果命令失败,请将adb
安装添加到PATH变量中)/data/data/com.your.package/database/
sqlite3 /data/data/com.your.package/database/YourAPP.db
以打开可以运行所有SQL命令的提示答案 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。