0

I'm having this error when I try to access one table:

02-19 16:46:01.677: E/AndroidRuntime(13159): android.database.sqlite.SQLiteException: no such table: notes: INSERT INTO notes (user,text) VALUES ('john','testingvalue')

But I created the table! I have two tables in the database ('users' and 'notes'), I'm accessing them the same way, but when I try to insert a value in the table 'notes', I have that error.

That's the code:

package com.loopr;

import android.content.Context; 
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class SQL extends SQLiteOpenHelper {

    String createUserTable = "CREATE TABLE users (name TEXT)";
    String createNotesTable = "CREATE TABLE notes (user TEXT, text TEXT)";

    public SQL(Context context, String name, CursorFactory factory, int version) {
        super(context, name, factory, version);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(createNotesTable);
        db.execSQL(createUserTable);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int before, int after) {
        //Nothing at the moment
    }

}

What can I do? Thanks.

user1217055
  • 91
  • 1
  • 1
  • 5

2 Answers2

0

Try changing int version and put this in your onUpgrade overridable method:

// Drop the old table.
db.execSQL("DROP TABLE IF EXISTS notes");

// Create a new one.
onCreate(db);
gorn
  • 8,097
  • 5
  • 37
  • 44
0

What can you do? Learn to debug on Android. Read the material at this link. Figure out how to use DDMS's File Explorer to pull databases from an emulator. Get a tool like SQLite Manager (firefox) to look at these databases - it's helped me enormously. Also, you can use SQLite Manager to perform raw sql statements on your DB, allowing you to craft sql and test at the same time.

Joel Skrepnek
  • 1,651
  • 1
  • 13
  • 21