gpt4 book ai didi

java - 如果不存在则插入,否则根据用户的选择更新 android

转载 作者:行者123 更新时间:2023-11-30 02:37:57 24 4
gpt4 key购买 nike

我已经为经典的“如何插入新记录或更新记录(如果它已经存在)”找到了一些“可能”的解决方案,但我无法让它们中的任何一个在 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();

}

}

当我插入具有相同名称的值时,它被添加。但是我所做的是当用户输入已经存在的相同名称时,警报只是询问用户是要更新还是忽略。如果他点击是,记录就会更新,如果没有,则什么也不会发生......

最佳答案

首先查询是否有这样的同名记录:

SELECT * FROM mytable WHERE name='*text*'

这里的 name 是用户的输入。然后检查该查询是否返回记录。如果是,请反馈给您的用户以设置另一个名称或通过更新返回的记录来忽略它。如果它没有返回任何记录,您可以将该记录插入到您的数据库中。

关于java - 如果不存在则插入,否则根据用户的选择更新 android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26211260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com