I’m newbie to android. I have gone through the android docs and I googled it, but I’m confused why my code is returning a no such table error.
I want to create a DB named as demo and I want to create a table student with three columns.
Here’s my code:
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;
public class DatabaseHelper extends SQLiteOpenHelper {
static final String dbName="demo";
public DatabaseHelper(Context context) {
super(context, dbName, null, 1);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("Create table IF NOT EXISTS student(title text,address text,gender text)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
public void insert_datas(String title,String artist,String patharray,String table_name){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues initialValues = new ContentValues();
initialValues.put("title",title);
initialValues.put("address",address);
initialValues.put("gender",gender);
long n = db.insert(table_name,title,initialValues);
System.out.println("n"+n);
db.close();
}
public Cursor get_datas(){
SQLiteDatabase db=this.getReadableDatabase();
Cursor cur=db.rawQuery("SELECT * FROM student",null);
return cur;
}
}
and this how i m call the DatabaseHelper class:
public class MYActivity extends Activity{
DatabaseHelper dbAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.customlist);
dbAdapter = new DatabaseHelper(this);
dbAdapter.insert_datas("test","test","test","student");
}
}
My error
**11-26 02:10:00.210: INFO/SqliteDatabaseCpp(27151): sqlite returned: error code = 1, msg = no such table: student, db=/data/data/com.player.activites/databases/demo
11-26 02:10:00.210: ERROR/SQLiteDatabase(27151): android.database.sqlite.SQLiteException: no such table: student: , while compiling: INSERT INTO studenty(title,address,gender) VALUES (?,?,?)**
Thanks
Try upgrading the database version number (right now you have it as 1). Is it possible you ran your app and tried to access the DB before your helper’s onCreate actually did anything? If you did that, you would have an empty DB at version 1. If you don’t want to increment your version numbers, you could alternatively uninstall your app or clear its data to delete the DB file entirely.