accessing data from sqlite database in Android Studio -
i trying data sqlite
database shows
error-"java.lang.illegalstateexception:attempt re-open closed object :sqlitequery : select *from mycatlog" .
please me. thank you
myhelper.class public class myhelper extends sqliteopenhelper { static final string database_name="mydatabase"; static final int database_version=1; static final string table_name="mycatalog"; static final string uid="id"; static final string utitle="title"; static final string uprice="price"; static final string udescp="descp"; static final string create_table="create table "+ table_name"("+uid+"varchar(25) primary key,"+utitle+ "varchar(255),"+uprice+"varchar(255),"+udescp+" varchar(255));"; private static final string drop_table="drop table" +table_name+"if exists"; private context context; public myhelper(context context) { super(context,database_name,null,database_version); this.context=context; message.message(context,"constructor called"); } public void oncreate(sqlitedatabase db){ message.message(context, "on create"); db.execsql(create_table); message.message(context,"table created"); } public void onupgrade(sqlitedatabase db,int oldversion,int newversion) { message.message(context,"upgrade called"); db.execsql(drop_table); oncreate(db); } public void insertdata(string id,string title, string price, string descp) { contentvalues contentvalues=new contentvalues(); sqlitedatabase db=getwritabledatabase(); contentvalues.put(uid,id); contentvalues.put(utitle,title); contentvalues.put(uprice,price); contentvalues.put(udescp, descp); db.insert(table_name, null, contentvalues); message.message(context, "inserted"); } public string getdata() { sqlitedatabase db = getwritabledatabase(); string selquery = "select * " + table_name; string[] columns = {uid, utitle, uprice, udescp}; cursor cursor = db.rawquery(selquery, null); stringbuffer buffer = new stringbuffer(); while (cursor.movetonext()) { int index1 = cursor.getcolumnindex(uid); //to index of columns int index2 = cursor.getcolumnindex(utitle); int index3 = cursor.getcolumnindex(uprice); int index4 = cursor.getcolumnindex(udescp); string id = cursor.getstring(index1); string title = cursor.getstring(index2); string price = cursor.getstring(index3); string descp = cursor.getstring(index4); buffer.append(id + " " + title + " " + price + " " + descp); cursor.close(); } return buffer.tostring(); } } mainactivity.class public class mainactivity extends activity { protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); myhelper helper=new myhelper(this); sqlitedatabase sqlitedatabase=helper.getwritabledatabase(); //helper.oncreate(sqlitedatabase); helper.insertdata("w2","ab","100","axy"); string data=helper.getdata(); message.message(this,data); } }
why closing inside while(...)
?
while (cursor.movetonext()) { // cursor.close(); }
Comments
Post a Comment