2015-10-09 43 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是空的,我没有检查。我会检查什么时候我会回家。现在交通如此拥挤。再次感谢你。 –

相关问题