如何删除sqlit数据库中的dublicate [英] how to remove dublicate in sqlit database

查看:87
本文介绍了如何删除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, use insertWithOnConflict and pass the proper CONFLICT_ constant.


这篇关于如何删除sqlit数据库中的dublicate的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆