android - Error when saving to sqlite database -
my error log
06-05 05:56:04.502: d/healthlylifestyleappmain(278): opened db in oncreate 06-05 05:56:04.522: d/healthlylifestyleappmain(278): loading db contents: 29 items 06-05 05:56:04.541: d/healthlylifestyleappmain(278): loading db contents: 0 items 06-05 05:56:04.541: d/healthlylifestyleappmain(278): closed db in oncreate 06-05 05:56:06.451: d/healthlylifestyleappmain(278): opened db in onpause 06-05 05:56:06.532: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef2888 06-05 05:56:06.551: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef2948 06-05 05:56:06.571: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef29c0 06-05 05:56:06.591: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef2a38 06-05 05:56:06.611: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef2ab0 06-05 05:56:06.621: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef2b28 06-05 05:56:06.641: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef2ba0 06-05 05:56:06.661: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef2c18 06-05 05:56:06.681: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef2c90 06-05 05:56:06.701: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef2d08 06-05 05:56:06.721: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef2d80 06-05 05:56:06.751: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef2df8 06-05 05:56:06.761: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef2e70 06-05 05:56:06.771: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef2f48 06-05 05:56:06.822: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef2fc0 06-05 05:56:06.831: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef3038 06-05 05:56:06.875: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef30b0 06-05 05:56:06.892: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef3128 06-05 05:56:06.901: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef31a0 06-05 05:56:06.912: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef3298 06-05 05:56:06.931: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef3310 06-05 05:56:06.961: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef3388 06-05 05:56:06.971: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef3400 06-05 05:56:06.981: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef3478 06-05 05:56:06.991: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef34f0 06-05 05:56:07.021: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef3568 06-05 05:56:07.051: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef35e0 06-05 05:56:07.062: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef3658 06-05 05:56:07.071: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44ef3788 06-05 05:56:07.081: d/healthylifestyleappmain(278): saved item: sg.edu.tp.iit.mns.logitem@44f1ee10 06-05 05:56:07.111: d/healthlylifestyleappmain(278): closed db in onpause 06-05 05:56:15.462: d/dalvikvm(278): gc_for_malloc freed 4966 objects / 257248 bytes in 118ms 06-05 05:56:59.081: w/keycharactermap(278): no keyboard id 0 06-05 05:56:59.081: w/keycharactermap(278): using default keymap: /system/usr/keychars/qwerty.kcm.bin 06-05 05:57:38.452: i/database(278): sqlite returned: error code = 1, msg = table fruittable has no column named _fruitcalorie 06-05 05:57:38.552: e/database(278): error inserting _fruitname=apple _fruitnum=2 _fruitcalorie=160 06-05 05:57:38.552: e/database(278): android.database.sqlite.sqliteexception: table fruittable has no column named _fruitcalorie: , while compiling: insert fruittable(_fruitname, _fruitnum, _fruitcalorie) values(?, ?, ?); 06-05 05:57:38.552: e/database(278): @ android.database.sqlite.sqlitecompiledsql.native_compile(native method) 06-05 05:57:38.552: e/database(278): @ android.database.sqlite.sqlitecompiledsql.compile(sqlitecompiledsql.java:91) 06-05 05:57:38.552: e/database(278): @ android.database.sqlite.sqlitecompiledsql.<init>(sqlitecompiledsql.java:64) 06-05 05:57:38.552: e/database(278): @ android.database.sqlite.sqliteprogram.<init>(sqliteprogram.java:80) 06-05 05:57:38.552: e/database(278): @ android.database.sqlite.sqlitestatement.<init>(sqlitestatement.java:36) 06-05 05:57:38.552: e/database(278): @ android.database.sqlite.sqlitedatabase.compilestatement(sqlitedatabase.java:1145) 06-05 05:57:38.552: e/database(278): @ android.database.sqlite.sqlitedatabase.insertwithonconflict(sqlitedatabase.java:1536) 06-05 05:57:38.552: e/database(278): @ android.database.sqlite.sqlitedatabase.insert(sqlitedatabase.java:1410) 06-05 05:57:38.552: e/database(278): @ sg.edu.tp.iit.mns.fruitdb.createentry(fruitdb.java:74) 06-05 05:57:38.552: e/database(278): @ sg.edu.tp.iit.mns.fruit$3$1.launchintent2(fruit.java:133) 06-05 05:57:38.552: e/database(278): @ sg.edu.tp.iit.mns.fruit$3$1.onclick(fruit.java:120) 06-05 05:57:38.552: e/database(278): @ com.android.internal.app.alertcontroller$buttonhandler.handlemessage(alertcontroller.java:158) 06-05 05:57:38.552: e/database(278): @ android.os.handler.dispatchmessage(handler.java:99) 06-05 05:57:38.552: e/database(278): @ android.os.looper.loop(looper.java:123) 06-05 05:57:38.552: e/database(278): @ android.app.activitythread.main(activitythread.java:4627) 06-05 05:57:38.552: e/database(278): @ java.lang.reflect.method.invokenative(native method) 06-05 05:57:38.552: e/database(278): @ java.lang.reflect.method.invoke(method.java:521) 06-05 05:57:38.552: e/database(278): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:868) 06-05 05:57:38.552: e/database(278): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:626) 06-05 05:57:38.552: e/database(278): @ dalvik.system.nativestart.main(native method) my java file
public class fruit extends activity implements onclicklistener, onitemselectedlistener { private textview tvfruit, tvno,tvtotal; context context=this; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); //for fullscreen view requestwindowfeature(window.feature_no_title); getwindow().setflags(windowmanager.layoutparams.flag_fullscreen,windowmanager.layoutparams.flag_fullscreen); setcontentview(r.layout.fruit); tvfruit = (textview) findviewbyid(r.id.tvfruit); tvno = (textview) findviewbyid(r.id.tvno); tvtotal = (textview)findviewbyid(r.id.tvtotal); final spinner fruits = (spinner)findviewbyid(r.id.spin_fruit); arrayadapter<charsequence> adapter = arrayadapter.createfromresource( this,r.array.fruits,android.r.layout.simple_spinner_item); adapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); fruits.setadapter(adapter); fruits.setonitemselectedlistener(this); fruits.setonitemselectedlistener(new onitemselectedlistener(){ public void onitemselected(adapterview<?> arg0, view arg1, int arg2, long arg3) { // todo auto-generated method stub string selecteditem = fruits.getselecteditem().tostring(); tvfruit.settext(selecteditem); } public void onnothingselected(adapterview<?> arg0) { // todo auto-generated method stub } }); final spinner num = (spinner)findviewbyid(r.id.spin_no); arrayadapter<charsequence> adapter1 = arrayadapter.createfromresource( this,r.array.total,android.r.layout.simple_spinner_item); adapter1.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); num.setadapter(adapter1); num.setonitemselectedlistener(this); num.setonitemselectedlistener(new onitemselectedlistener(){ public void onitemselected(adapterview<?> arg0, view arg1, int arg2, long arg3) { // todo auto-generated method stub string selecteditem = num.getselecteditem().tostring(); tvno.settext(selecteditem); tvtotal.settext(string.valueof(calculatecalories())); } public int calculatecalories() { int[] calorie = getresources().getintarray(r.array.calorie); return integer.parseint((string) num.getselecteditem()) * calorie[fruits.getselecteditemposition()]; } public void onnothingselected(adapterview<?> arg0) { // todo auto-generated method stub } }); button save = (button) findviewbyid(r.id.bsave); save.settextcolor(color.blue); save.setonclicklistener(new view.onclicklistener() { public void onclick(view arg0) { // todo auto-generated method stub // subject details , show in alertdialog alertdialog.builder builder = new alertdialog.builder(context); builder.setmessage("success"); builder.setpositivebutton("ok", new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog, int which) { // todo auto-generated method stub launchintent2(); } private void launchintent2() { // todo auto-generated method stub try{ string fruit =tvfruit.gettext().tostring(); string number =tvno.gettext().tostring(); string calorie =tvtotal.gettext().tostring(); fruitdb entry = new fruitdb(fruit.this); entry.open(); entry.createentry(fruit, number, calorie); entry.close(); } catch(exception e){ } } }); builder.setnegativebutton("view log", new dialoginterface.onclicklistener(){ public void onclick(dialoginterface dialog, int which) { // part done negative button // if want link new intent launchintent(); } }); builder.create().show(); } //making "view log" button in dialog box go new intent fruitlog.class private void launchintent(){ intent = new intent(fruit.this, fruitlog.class); i.addflags(intent.flag_activity_clear_top); startactivity(i); } }); } my database file:
public class fruitdb extends activity{ public static final string key_rowid = "_id"; public static final string key_name = "_fruitname"; public static final string key_number = "_fruitnum"; public static final string key_calorie = "_fruitcalorie"; private static final string database_name = "fruitdb"; private static final string database_table = "fruittable"; private static final int database_version = 1; private dbhelper newhelper; private final context ourcontext1; private sqlitedatabase ourdatabase; private static class dbhelper extends sqliteopenhelper{ public dbhelper(context context) { super(context, database_name, null, database_version); // todo auto-generated constructor stub } @override public void oncreate(sqlitedatabase db) { // todo auto-generated method stub db.execsql("create table " + database_table + " (" + key_rowid + " integer primary key autoincrement, " + key_name + " text not null, " + key_number + " text not null, " + key_calorie + " text not null);" ); } @override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { // todo auto-generated method stub db.execsql("drop table if exists " + database_table); oncreate(db); } } public fruitdb(context c){ ourcontext1 = c; } public fruitdb open()throws sqlexception{ newhelper = new dbhelper(ourcontext1); ourdatabase = newhelper.getwritabledatabase(); return this; } public void close(){ newhelper.close(); } public long createentry(string fruit, string number, string calorie) { // todo auto-generated method stub contentvalues cv = new contentvalues(); cv.put(key_name, fruit); cv.put(key_number, number); cv.put(key_calorie, calorie); return ourdatabase.insert(database_table, null, cv); } public string getdata() { // todo auto-generated method stub string[] columns = new string[]{ key_rowid, key_name, key_number, key_calorie}; cursor c = ourdatabase.query(database_table, columns, null, null, null, null, null); string result = ""; int irow = c.getcolumnindex(key_rowid); int iname = c.getcolumnindex(key_name); int irating = c.getcolumnindex(key_number); int icalorie = c.getcolumnindex(key_calorie); for(c.movetofirst(); !c.isafterlast(); c.movetonext()){ //result = result + c.getstring(irow) + " " + c.getstring(iname) + " " + c.getstring(irating) + " \n"; result = result + c.getstring(irow) + " " + c.getstring(iname) + " " + c.getstring(irating) + " " + c.getstring(icalorie) + " \n"; } return result; } } im having error when tried insert total calorie database. before having total caloire, working. im unsure of error. please me out here.
if have updated table structure , added new column need uninstall application reinstall make effect of changes.
to uninstall goto settings->application->manage applications ->select app -> uninstall/cleardata
Comments
Post a Comment