no such column in table SQLite android -
helo have created table named produittable, need save data edittext , after search in list, logcat says no column named description_produit , me it's there can please suggest me wrong , how fix it.
the logcat ....
android.database.sqlite.sqliteexception: table produittable has no column named quantite_stock (code 1): , while compiling: insert produittable(nom_produit,quantite_stock,prix_vente,description_produit) values('nokia','15','90','where plz') 05-15 11:34:08.902: e/androidruntime(1003): @ android.database.sqlite.sqliteconnection.nativepreparestatement(native method) 05-15 11:34:08.902: e/androidruntime(1003): @ android.database.sqlite.sqliteconnection.acquirepreparedstatement(sqliteconnection.java:882) 05-15 11:34:08.902: e/androidruntime(1003): @ android.database.sqlite.sqliteconnection.prepare(sqliteconnection.java:493) 05-15 11:34:08.902: e/androidruntime(1003): @ android.database.sqlite.sqlitesession.prepare(sqlitesession.java:588) 05-15 11:34:08.902: e/androidruntime(1003): @ android.database.sqlite.sqliteprogram.<init>(sqliteprogram.java:58) 05-15 11:34:08.902: e/androidruntime(1003): @ android.database.sqlite.sqlitestatement.<init>(sqlitestatement.java:31) 05-15 11:34:08.902: e/androidruntime(1003): @ android.database.sqlite.sqlitedatabase.executesql(sqlitedatabase.java:1663) 05-15 11:34:08.902: e/androidruntime(1003): @ android.database.sqlite.sqlitedatabase.execsql(sqlitedatabase.java:1594) 05-15 11:34:08.902: e/androidruntime(1003): @ com.tabet.salah_projet.produitactivity.insert(produitactivity.java:165) 05-15 11:34:08.902: e/androidruntime(1003): @ com.tabet.salah_projet.produitactivity$3.onclick(produitactivity.java:56) 05-15 11:34:08.902: e/androidruntime(1003): @ android.view.view.performclick(view.java:4202) 05-15 11:34:08.902: e/androidruntime(1003): @ android.view.view$performclick.run(view.java:17340) 05-15 11:34:08.902: e/androidruntime(1003): @ android.os.handler.handlecallback(handler.java:725) 05-15 11:34:08.902: e/androidruntime(1003): @ android.os.handler.dispatchmessage(handler.java:92) 05-15 11:34:08.902: e/androidruntime(1003): @ android.os.looper.loop(looper.java:137) 05-15 11:34:08.902: e/androidruntime(1003): @ android.app.activitythread.main(activitythread.java:5039) 05-15 11:34:08.902: e/androidruntime(1003): @ java.lang.reflect.method.invokenative(native method) 05-15 11:34:08.902: e/androidruntime(1003): @ java.lang.reflect.method.invoke(method.java:511) 05-15 11:34:08.902: e/androidruntime(1003): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:793) 05-15 11:34:08.902: e/androidruntime(1003): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:560) 05-15 11:34:08.902: e/androidruntime(1003): @ dalvik.system.nativestart.main(native method) and database code..
public class produitactivity extends activity{ sqlitedatabase db; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.produits); createdb(); textview listeprod =(textview)findviewbyid(r.id.link_to_liste); listeprod.setonclicklistener(new onclicklistener() { public void onclick(view arg0) { intent = new intent(getapplicationcontext(), checklisteproduit.class); startactivity(i); } }); button btnaller=(button)findviewbyid(r.id.btnaller ); btnaller.setonclicklistener(new onclicklistener() { public void onclick(view arg0) { intent = new intent(getapplicationcontext(), stock.class); startactivity(i); } }); //do insert button btnajout=(button)findviewbyid(r.id.btnajout ); btnajout.setonclicklistener(new onclicklistener() { public void onclick(view arg0) { insert(); } }); button btnclear=(button)findviewbyid(r.id.btnclear ); btnclear.setonclicklistener(new onclicklistener() { public void onclick(view arg0) { clear(); } }); } @override public boolean oncreateoptionsmenu(menu menu) { super.oncreateoptionsmenu(menu); createmenu(menu); return true; } @override public boolean onoptionsitemselected(menuitem item) { return menuchoice(item); } private void createmenu(menu menu) { menuitem mnu1 = menu.add(0, 0, 0, "insert"); { mnu1.setalphabeticshortcut('i'); mnu1.seticon(android.r.drawable.ic_input_add); } menuitem mnu2 = menu.add(0, 1, 1, "search"); { mnu2.setalphabeticshortcut('s'); mnu2.seticon(android.r.drawable.ic_search_category_default); } menuitem mnu3 = menu.add(0, 2, 2, "delete"); { mnu3.setalphabeticshortcut('d'); mnu3.seticon(android.r.drawable.ic_delete); } menuitem mnu4 = menu.add(0, 3, 3, "view"); { mnu4.setalphabeticshortcut('d'); mnu4.seticon(android.r.drawable.ic_menu_info_details); } } private boolean menuchoice(menuitem item) { intent intent=new intent(); switch (item.getitemid()) { case 0: insert(); return true; case 1: intent.setclass(produitactivity.this, stock.class); startactivity(intent); return true; case 2: intent.setclass(produitactivity.this, stock.class); startactivity(intent); return true; case 3: intent.setclass(produitactivity.this, stock.class); startactivity(intent); return true; } return false; } public void createdb() { db=openorcreatedatabase("produitbase.db", sqlitedatabase.create_if_necessary, null); db.setlocale(locale.getdefault()); db.setlockingenabled(true); db.setversion(1); string sql="create table if not exists produittable(id integer primary key autoincrement, nom_produit text, quantite_stock text, prix_vente text, description_produit text)"; db.execsql(sql); } public void insert() { edittext nom_produit=(edittext)findviewbyid(r.id.nom_produit); edittext quantite_stock=(edittext)findviewbyid(r.id.quantite_stock); edittext prix_vente=(edittext)findviewbyid(r.id.prix_vente); edittext description_produit=(edittext)findviewbyid(r.id.description_produit); if(nom_produit.gettext().tostring().equals("")) { toast.maketext(produitactivity.this, "entrer nom produit.", toast.length_short).show(); } else if (quantite_stock.gettext().tostring().equals("")) { toast.maketext(produitactivity.this, "entrer la quantité.", toast.length_short).show(); } else if (prix_vente.gettext().tostring().equals("")) { toast.maketext(produitactivity.this, "entrer prix de vente.", toast.length_short).show(); } else if (description_produit.gettext().tostring().equals("")) { toast.maketext(produitactivity.this, "entrer la description.", toast.length_short).show(); } else { string sql="insert produittable(nom_produit,quantite_stock,prix_vente,description_produit) values('"+ nom_produit.gettext().tostring() +"','"+ quantite_stock.gettext().tostring() +"','"+ prix_vente.gettext().tostring() +"','"+ description_produit.gettext().tostring()+"')"; db.execsql(sql); clear(); toast.maketext(produitactivity.this, "produit ajouté.", toast.length_short).show(); } } public void clear() { edittext nom_produit=(edittext)findviewbyid(r.id.nom_produit); edittext quantite_stock=(edittext)findviewbyid(r.id.quantite_stock); edittext prix_vente=(edittext)findviewbyid(r.id.prix_vente); edittext description_produit=(edittext)findviewbyid(r.id.description_produit); nom_produit.settext(""); quantite_stock.settext(""); prix_vente.settext(""); description_produit.settext(""); nom_produit.clearfocus(); quantite_stock.clearfocus(); prix_vente.clearfocus(); description_produit.clearfocus(); nom_produit.requestfocus(); } @override public void ondestroy() { super.ondestroy(); db.close(); } }
your create sql starts create table if not exists. guess added column quantite_stock while device has had table. if case reinstall app - delete db, can sure table created updated table columns.
Comments
Post a Comment