android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed while inserting more than 1 record -
i got error when insert data 2nd time. works fine 1st time insert data in database. later app gets forced close or item added not display in listview. logcat looks when try insert 2nd record
05-06 04:14:06.220: e/sqlitedatabase(773): error inserting imei_id=0 c_addr=54 i_date=6/5/2013 c_nm=rte e_date=6/5/2013 cl_no=tre exe_flg=true l_no=65 l_type=dfdg 05-06 04:14:06.220: e/sqlitedatabase(773): android.database.sqlite.sqliteconstraintexception: error code 19: constraint failed 05-06 04:14:06.220: e/sqlitedatabase(773): @ android.database.sqlite.sqlitestatement.native_executeinsert(native method) 05-06 04:14:06.220: e/sqlitedatabase(773): @ android.database.sqlite.sqlitestatement.executeinsert(sqlitestatement.java:113) 05-06 04:14:06.220: e/sqlitedatabase(773): @ android.database.sqlite.sqlitedatabase.insertwithonconflict(sqlitedatabase.java:1718) 05-06 04:14:06.220: e/sqlitedatabase(773): @ android.database.sqlite.sqlitedatabase.insert(sqlitedatabase.java:1591) 05-06 04:14:06.220: e/sqlitedatabase(773): @ com.smartwallet.database.dbadapterdlicense.insertdl(dbadapterdlicense.java:49) 05-06 04:14:06.220: e/sqlitedatabase(773): @ com.exampl.smartwallet.add_dlicense.onclick(add_dlicense.java:139)
my class add record is
package com.exampl.smartwallet; import java.util.calendar; import com.smartwallet.database.dbadapterdlicense; import android.app.activity; import android.app.datepickerdialog; import android.app.dialog; import android.os.bundle; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.datepicker; import android.widget.edittext; import android.widget.textview; import android.widget.toast; public class add_dlicense extends activity implements onclicklistener { private textview et_idt,et_edt; private edittext et_cnm,et_lno,et_add,et_cno,et_ltype; private button bt_add; private long dlid,l; private int myear,mmonth, mday; static final int date_dialog_idi = 0; static final int date_dialog_ide = 1; private datepickerdialog.ondatesetlistener mdatesetlisteneri; private datepickerdialog.ondatesetlistener mdatesetlistenere; private dbadapterdlicense dba; //private telephonymanager tm; private string imei="9898"; @override public void oncreate(bundle b) { super.oncreate(b); setcontentview(r.layout.add_dlicense); dlid=null; bundle extras=getintent().getextras(); dlid=(b==null)? null:(long)b.getserializable("imei_id"); if(extras!=null) { dlid=extras.getlong("imei_id"); } dba=new dbadapterdlicense(this); dba.open(); et_cnm=(edittext)findviewbyid(r.id.et_cnm); et_idt=(textview)findviewbyid(r.id.et_idt); et_edt=(textview)findviewbyid(r.id.et_edt); et_lno=(edittext)findviewbyid(r.id.et_lno); et_add=(edittext)findviewbyid(r.id.et_add); et_cno=(edittext)findviewbyid(r.id.et_cno); et_ltype=(edittext)findviewbyid(r.id.et_ltype); et_idt.setonclicklistener(this); et_edt.setonclicklistener(this); bt_add=(button)findviewbyid(r.id.bt_save); bt_add.setonclicklistener(this); mdatesetlisteneri = new datepickerdialog.ondatesetlistener() { public void ondateset(datepicker view, int year, int monthofyear, int dayofmonth) { myear = year; mmonth = monthofyear; mday = dayofmonth; updatedisplay1(); } }; final calendar c1 = calendar.getinstance(); myear = c1.get(calendar.year); mmonth = c1.get(calendar.month); mday = c1.get(calendar.day_of_month); updatedisplay1(); mdatesetlistenere = new datepickerdialog.ondatesetlistener() { public void ondateset(datepicker view, int year, int monthofyear, int dayofmonth) { myear = year; mmonth = monthofyear; mday = dayofmonth; updatedisplay2(); } }; final calendar c = calendar.getinstance(); myear = c.get(calendar.year); mmonth = c.get(calendar.month); mday = c.get(calendar.day_of_month); updatedisplay2(); } public boolean validate() { if(et_cnm.gettext().tostring().equals("")) return false; if(et_lno.gettext().tostring().equals("")) return false; if(et_add.gettext().tostring().equals("")) return false; if(et_cno.gettext().tostring().equals("")) return false; if(et_ltype.gettext().tostring().equals("")) return false; return true; } @override public void onclick(view v) { if(v.equals(et_idt)) { showdialog(date_dialog_idi); } if(v.equals(et_edt)) { showdialog(date_dialog_ide); } if(!validate()) { toast.maketext(this, "blank fields not allowed", toast.length_short).show(); return; } if(v.equals(bt_add)) { if(dlid==null) { l = dba.insertdl(0, et_cnm.gettext().tostring(),et_idt.gettext().tostring(),et_edt.gettext().tostring(),et_lno.gettext().tostring(),et_add.gettext().tostring(),et_cno.gettext().tostring(),et_ltype.gettext().tostring(),"true"); toast.maketext(add_dlicense.this, "item added", 2000).show(); imei+=l; //dba.updatedl(l, long.parselong(imei), et_cnm.gettext().tostring(),et_idt.gettext().tostring(),et_edt.gettext().tostring(),et_lno.gettext().tostring(), et_add.gettext().tostring(),et_cno.gettext().tostring(),et_ltype.gettext().tostring(),"true"); } finish(); } } private void updatedisplay1() { et_idt.settext(""+mday+"/"+(mmonth+1)+"/"+myear); } private void updatedisplay2() { et_edt.settext(""+mday+"/"+(mmonth+1)+"/"+myear); } @override protected dialog oncreatedialog(int id) { if(id==date_dialog_idi) { return new datepickerdialog(this, mdatesetlisteneri, myear, mmonth, mday); } else if(id==date_dialog_ide) { return new datepickerdialog(this, mdatesetlistenere, myear, mmonth, mday); } return null; } @override protected void ondestroy() { // todo auto-generated method stub dba.close(); super.ondestroy(); } }
and dbadapter query is
public long insertdl(long imei_id,string c_nm,string i_date, string e_date,string l_no,string cl_no,string c_addr,string l_type,string exe_flg) { contentvalues values = createcontentvalues_dl(imei_id,c_nm,i_date, e_date, l_no,cl_no,c_addr,l_type,exe_flg); return db.insert(t_dlicense, null, values); }
and table in createtable is
private static final string drivinglicense = "create table drivinglicense " + "(dlid integer primary key autoincrement, " + "imei_id int(20), " + "c_nm text not null,"+ "i_date text not null, " + "e_date text not null,"+ "l_no text not null,"+ "cl_no text not null,"+ "c_addr text not null,"+ "exe_flg text not null,"+ "l_type text not null,unique(imei_id));";
please me in inserting more 1 record . search faild find solution. because 1st record inserted correctly not more ... thanx in advance.
you're inserting same value column imei_id
cannot declared unique.
Comments
Post a Comment