SQLite дает исключение NullPointerException - PullRequest
0 голосов
/ 14 сентября 2011

В моем основном коде у меня есть:

String TableLayout = "TAB01";
dbWorker db = new dbWorker();
db.createTable(TableLayout);

Что должно создать объект класса dbWorker и заставить его создать таблицу с именем TAB01.

package Constructor.rob.com;

import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import android.widget.Toast;

public class dbWorker extends Activity {

    SQLiteDatabase mydb;
    private static String DBNAME = "TotalKeyboard.db";  // THIS IS THE SQLITE DATABASE FILE NAME.

    public void createTable( String TableName ){
        try{
        mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE,null);
        mydb.execSQL("CREATE TABLE IF NOT EXISTS "+ TableName +" (ID INTEGER PRIMARY KEY, NUMBER_OF_ROWS INTEGER, STYLE TEXT, BG1 INTEGER, BG1 INTEGER, FLAG TEXT);");
        mydb.close();
        }catch(Exception e){  Log.e("Error Creating!", e.toString() );  } }
...

И все же меня ловит «ОШИБКА / Ошибка создания! (14823): java.lang.NullPointerException».

Есть идеи, что может быть не так?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 14 сентября 2011

Вы должны сделать что-то немного по-другому относительно базы данных. Вы должны расширить SqLiteOpenHelper, создать экземпляр этого класса и вызвать getReadableDatabase или getWriteableDatabase. Подробности здесь: http://developer.android.com/guide/topics/data/data-storage.html#db

0 голосов
/ 14 сентября 2011

Из того, что мы видим здесь, вы можете получить NullReferenceException, только если переданный параметр TableName равен нулю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...