我通过编码在数据库中添加值。我希望如果已经在数据库中添加了值,则不应再次添加它。我怎样才能进行这样的验证。
我的数据库表是:
final String DATA="create table if not exists Favorites5("+"id INTEGER PRIMARY KEY AUTOINCREMENT,"+"title TEXT,"+"employer TEXT,"+"location TEXT,"+"description TEXT,"+"city TEXT,"+"province TEXT,"+"lat TEXT,"+"log TEXT);";
提前完成。
答案 0 :(得分:0)
我不确切知道Android是否支持此功能,但您可以使用触发器。
SQLite Documentation解释了如何在SQLite中使用它们。
答案 1 :(得分:0)
我的问题解决了。我发布了我为任何需要它的人发布的代码。
校验= 0; 尝试{ 光标cur = db.query(“Favorites7”, null,null,null,null,null,null);
cur.moveToFirst();
while (cur.isAfterLast() == false) {
//name.append("n" + cur.getString(1));
//mylist.addAll(cur.getString(i));
title1.add(cur.getString(1));
//nextScreenData.add(cur.getString(2).toString());
cur.moveToNext();
}
cur.close();
for(int index=0; index<title1.size();index++)
{
System.out.println(title1.get(index));
}
System.out.println("AAAAA"+str1);
} catch (Exception e) {
check=1;
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(getApplicationContext(), "No Jobs added",
Toast.LENGTH_SHORT).show();
}
adtofav.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
int flag=0;
// Adding values to database
if(check==0)
{
for(int j=0;j<title1.size();j++)
{
if( str1.equals(title1.get(j)))
{
flag=1;
break;
}
}
}
if(flag==1)
{
/*Toast.makeText(getApplicationContext(), "Jobs already added",
Toast.LENGTH_SHORT).show(); */
AlertDialog.Builder dialog = new AlertDialog.Builder(JobDesc.this);
dialog.setTitle("FAVORITES DATA");
dialog.setMessage("Data Already Exists");
dialog.setNeutralButton("OK",null);
dialog.show();
}else
{try {
ContentValues values = new ContentValues();
values.put("title", str1);
values.put("employer",employee);
values.put("location", loc);
values.put("description",desc);
values.put("city",city);
values.put("province",province);
values.put("lat",lat);
values.put("log",log);
db.insert("Favorites7",null, values);
db.close();
} catch (Exception e) {
AlertDialog.Builder dialog = new AlertDialog.Builder(JobDesc.this);
dialog.setTitle("FAVORITES DATA");
dialog.setMessage("Data Already Added");
dialog.setNeutralButton("OK",null);
dialog.show();
// TODO Auto-generated catch block
}
}
}
});
这里的收藏夹7是我的数据库表
答案 2 :(得分:0)
您对“id”已经有PRIMARY KEY约束,因此数据库将阻止您输入“id”列中具有相同值的两行。
如果要防止其他列中的重复项,请对该列使用UNIQUE约束。例如,要防止“标题”列中出现重复,请使用
create table if not exists Favorites5(
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT UNIQUE, -- Title can't be duplicated.
employer TEXT,
location TEXT,
description TEXT,
city TEXT,
province TEXT,
lat TEXT,
log TEXT
);
考虑在所有这些列上使用NOT NULL约束。