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

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -