如何删除sqlit数据库中的dublicate [英] how to remove dublicate in sqlit database
本文介绍了如何删除sqlit数据库中的dublicate的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在下面的代码中我想使用rollno是主键,当输入dublicate rollno时,它应该显示这个数字已经存在的消息
i使用了以下主键但它不起作用
in the following code i want to use the rollno is the primary key and when the dublicate rollno is entered it should to show the message that "this number is already exist"
i have used the following primary key but it doesnot work
public class DataHaandler {
public static final String NAME="name";
public static final String EMAIL="email";
public static final String TABLE_NAME="mytable";
public static final String DATA_BASE_NAME="mydatabase";
public static final int DATABASE_VERSION=1;
public static final String TABLE_CREATE="create table"+ TABLE_NAME+"("+NAME + "INTEGER PRIMARY KEY AUTOINCREMENT,"+TABLE_NAME+" TEXT,"+EMAIL+");";
DataBaseHelper dbhelper;
Context ctx;
SQLiteDatabase db;
public DataHaandler(Context ctx)
{
this.ctx=ctx;
dbhelper=new DataBaseHelper(ctx);
}
private static class DataBaseHelper extends SQLiteOpenHelper
{
public DataBaseHelper(Context ctx)
{
super(ctx,DATA_BASE_NAME,null,DATABASE_VERSION);
}
public DataBaseHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
try{
db.execSQL(TABLE_CREATE);
}
catch(SQLException e)
{
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS mytable");
onCreate(db);
}
}
public DataHaandler open()
{
db=dbhelper.getWritableDatabase();
return this;
}
public void close()
{
dbhelper.close();
}
public long insertData(String name,String email)
{
ContentValues content=new ContentValues();
content.put(name, name);
content.put(email, email);
return db.insert(TABLE_NAME, null, content);
}
public Cursor returnData()
{
return db.query(TABLE_NAME, new String[]{NAME,EMAIL}, null, null,null, null, null);
}
}
推荐答案
而不是使用Insert ,尝试使用 insertOrThrow [ ^ ]。该方法应该正确抛出异常id,遇到错误。或者,如果您想控制冲突中发生的事情,请使用insertWithOnConflict
并传递正确的CONFLICT _
常量。
Instead of using Insert, try using insertOrThrow[^]. That method should properly throw an exception id an error is encountered. Or if you want to control what happens in conflict, useinsertWithOnConflict
and pass the properCONFLICT_
constant.
这篇关于如何删除sqlit数据库中的dublicate的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文