Wednesday, 15 September 2010

sqlite - Data not gettting inserted in Table in Android app -



sqlite - Data not gettting inserted in Table in Android app -

i need insert info in table while inserting info in table ,i getting null pointer exception @ db.insert(table_name,null,cm),statementwhich not able resolve.please help.thanks in advance.

package com.example.movietrivia; import java.util.arraylist; import java.util.list; import android.content.contentvalues; import android.content.context; import android.database.cursor; import android.database.sqlite.sqlitedatabase; import android.database.sqlite.sqlitedatabase.cursorfactory; import android.database.sqlite.sqliteopenhelper; import android.util.log; public class quizhelper extends sqliteopenhelper { public static final string db_name="movie.db"; public static final string table_name="movietrivia"; public static int version_number=1; public static final string key_id="id"; public static final string key_quest="question"; public static final string key_ans="answer"; public static final string key_opta="opta"; public static final string key_optb="optb"; public static final string key_optc="optc"; public static final string key_optd="optd"; private sqlitedatabase db; public quizhelper(context context) { super(context, db_name, null, version_number); // this.db = this.getwritabledatabase(); // todo auto-generated constructor stub } //"create table " + table_name + "(" + col_name + " text , " + col_age + " text)"; @override public void oncreate(sqlitedatabase d) { // todo auto-generated method stub string query="create table " + table_name + " (" + key_id + " integer primary key," + key_quest + " text," + key_ans + " text," + key_opta + " text," + key_optb + " text," + key_optc + " text," + key_optd + " text" + ");"; d.execsql(query); log.d("query",query); addquestion(); //log.d("query",query); } private void addquestion() { this.getwritabledatabase(); question q1=new question("who jack sparrow in pirates of carribean??","dfd","dsdsd","sd","johnny depp","d"); log.d("here","where"); this.addquestions(q1); question q2=new question("who plays batman in dark knight??","dfd","christian bale","jmjjm","dffdfdfd","b"); this.addquestions(q2); question q3=new question("who plays iron man in series??","robert downey jr.","fdfd","nbnbnb","trrrt","a"); this.addquestions(q3); } public void addquestions(question quest) { //this.getwritabledatabase(); log.d("test","testing"); log.d("key_quest",quest.getquestions()); contentvalues cm=new contentvalues(); log.d("key_quest",quest.getquestions()); log.d("key_ans",quest.getanswer()); log.d("key_opta",quest.getopta()); log.d("key_optb",quest.getoptb()); log.d("key_optc",quest.getoptc()); log.d("key_optd",quest.getoptd()); cm.put(key_quest,quest.getquestions()); cm.put(key_ans,quest.getanswer()); cm.put(key_opta,quest.getopta()); cm.put(key_optb,quest.getoptb()); cm.put(key_optc,quest.getoptc()); cm.put(key_optd,quest.getoptd()); db.insert(table_name,null,cm); } public list<question> getallquestion() { list<question> quest=new arraylist<question>(); string selectquery="select * " + table_name; sqlitedatabase db; db=this.getreadabledatabase(); cursor cursor=db.rawquery(selectquery, null); if(cursor.movetofirst()) { do{ question ques=new question(); ques.setid(cursor.getint(0)); ques.setquestions(cursor.getstring(1)); ques.setanswer(cursor.getstring(2)); ques.setopta(cursor.getstring(3)); ques.setoptb(cursor.getstring(4)); ques.setoptc(cursor.getstring(5)); ques.setoptd(cursor.getstring(6)); }while(cursor.movetonext()); } homecoming quest; } public int rowcount() { int row=0; string selectquery = "select * " + table_name; sqlitedatabase db = this.getwritabledatabase(); cursor cursor = db.rawquery(selectquery, null); row=cursor.getcount(); homecoming row; } @override public void onupgrade(sqlitedatabase db, int oldversion, int newversion) { // todo auto-generated method stub } }

you're calling getwritabledatabase() recursively in addquestion() called oncreate() in turn triggered getwritabledatbase().

either remove addquestion() call, or pass in sqlitedatabase argument oncreate() work on.

android sqlite

No comments:

Post a Comment