2015-10-09 109 views
-1

我有en錯誤,實際上是代碼拋出異常。我不能從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")被返回null。

+0

謝謝,getDatabasePath(「MobileTech.db」)一定不能返回null ,因爲如果這個數據庫不存在,它會創建。也許上下文c是空的,我沒有檢查。我會檢查什麼時候我會回家。現在交通如此擁擠。再次感謝你。 –

相關問題