我發現了一些經典的「如何插入新記錄或更新一個,如果它已經存在」,但我不能得到他們中的任何一個對用戶的選擇工作在Android的插入如果不存在其他更新用戶的選擇android
我有一個表,如下所示: mytable(Name text,Longitude double, Latitude double)
我想要做的就是添加一條記錄了一個獨特的名稱。如果名稱已經存在,我希望用戶選擇修改字段或在android中忽略它。
有人可以告訴我該怎麼做嗎?
我對插入按鈕代碼:
public void insert(View v) {
final String nm = name.getText().toString();
final String longitude = ln.getText().toString();
final String latitude = lt.getText().toString();
// ln.setText("");
// lt.setText("");
// insert data into able
try {
Cursor c = db.rawQuery("select count(*) from mytable ", null);
if (c.getCount() > 0) {
c = db.rawQuery("select (*) from mytable where Name=" + nm, null);
if (c.getCount() > 0) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Confirm");
builder.setMessage("Record Already Exists Want to overwrite?");
builder.setPositiveButton("YES",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
// Do nothing but close the dialog
ContentValues updatedValues = new ContentValues();
updatedValues.put("Longitude", longitude);
updatedValues.put("Latitude", latitude);
db.update("mytable", updatedValues, "Name="
+ nm, null);
Toast.makeText(getApplicationContext(),
"updated", Toast.LENGTH_LONG)
.show();
dialog.dismiss();
}
});
builder.setNegativeButton("NO",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
// Do nothing
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
// Toast.makeText(this, "values updated successfully.",
// Toast.LENGTH_LONG).show();
/* record exist */
} else {
db.execSQL("insert into mytable values('" + nm + "','"
+ longitude + "','" + latitude + "')");
/* record not exist */
// display Toast
Toast.makeText(this, "values inserted successfully.",
Toast.LENGTH_LONG).show();
}
}
} catch (Exception e) {
db.execSQL("insert into mytable values('" + nm + "','" + longitude
+ "','" + latitude + "')");
/* record not exist */
// display Toast
Toast.makeText(this, "values inserted successfully.",
Toast.LENGTH_LONG).show();
}
}
當我插入具有相同名稱的值,所添加的。但是我做什麼是當用戶輸入相同的名稱已經存在一個警報是buit問用戶是否想要更新或忽略。 如果他點擊是記錄被更新,如果沒有則什麼也不會發生......
以'query'和'insert'或'update'。究竟是什麼問題? – 2014-10-06 07:01:21
郵政編碼爲您迄今爲止做了什麼。 – Neo 2014-10-06 07:30:09
@CL。當用戶單擊插入時,如果數據庫具有相同名稱的記錄,則形成警報以詢問用戶是否想要更新或解僱。 – 2014-10-06 08:32:20