2015-10-09 3 views
-1

У меня есть ошибка, на самом деле код генерирует исключение. Я не мог читать данные из базы данных sqlite.вызывать исключение, когда я читаю базу данных sqlite

Вот мой класс whic работы на базе

public class Database extends SQLiteOpenHelper{ 
public SQLiteDatabase db; 

public Database(Context c) 
{ 
    super(c, c.getDatabasePath("MobileTech.db").toString(), null, 3); 

    getWritableDatabase().close(); 
} 

@Override 
public void onCreate(SQLiteDatabase db) 
{ 
    Log.e("x", "MobileTech.db oluşturuluyor"); 

    /** 
    * Mobil Kullanıcı Tablosu 
    */    
    db.execSQL("CREATE TABLE MOBILEUSERS" + 
    "(ID TEXT PRIMARY KEY, USERNAME TEXT, PASSWORD TEXT)"); 

} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    // TODO Auto-generated method stub 

} 

А вот метод чтение mobileusers этого класса:

//I try to read mobileusers data here 
public ArrayList<MobileUsers> getMobileUsers() 
{ 
    ArrayList<MobileUsers>userList = new ArrayList<MobileUsers>(); 
    db=getWritableDatabase(); 
    Cursor cursor = db.rawQuery("SELECT USERNAME,PASSWORD FROM MOBILEUSERS", null); 
    while (cursor.moveToNext()) 
    { 
     MobileUsers user = new MobileUsers(cursor.getString(0), cursor.getString(1)); 
     userList.add(user); 
    } 
    db.close(); 
    return userList; 
} 

А вот метод где вызов метода чтения базы данных из класс базы данных (я опубликовал)

public ArrayList<MobileUsers> userList() 
{ 
    ArrayList<MobileUsers>userList = new ArrayList<MobileUsers>(); 
    Database db = new Database(this.c); 
    userList = db.getMobileUsers(); 
    for(MobileUsers mobileUser : userList) 
    { 
     Log.e("isim", mobileUser.name); 
     Log.e("şifre", mobileUser.password); 
    } 
    return userList;   
} 

Но у меня есть исключение. Это исключение здесь.

enter image description here

Где моя ошибка? Я не мог поймать, я не мог видеть. Не могли бы вы мне помочь, пожалуйста?

+0

Пожалуйста, покажите нам полный стек и укажите, на какой строке он происходит. –

+0

проверить это http://stackoverflow.com/questions/18189995/android-getwritabledatabase-throws-a-nullpointerexception – Pavan

+0

Я уже показываю вам все функции об исключении –

ответ

0

Проблема эта линия:

super(c, c.getDatabasePath("MobileTech.db").toString(), null, 3); 

Либо Context c имеет нулевое значение, или getDatabasePath("MobileTech.db") возвращается нуль.

+0

спасибо, getDatabasePath («MobileTech.db») не должен возвращать null , потому что, если эта база данных не существует, она будет создана. Может быть, контекст c имеет значение null, я не проверял. Я проверю, когда приеду домой. Теперь трафик настолько переполнен. Еще раз спасибо. –

Смежные вопросы