2010-02-25 110 views
0

我把我的sqlite數據庫文件放在「資產」文件夾我編寫DAO calss從數據庫中獲取數據,但是log.e的信息意味着我無法打開數據庫。打開sqlite數據庫失敗

公共類的GetData {

private static String DB_PATH = "/data/data/com.SGMalls/databases/mallMapv2.sqlite"; 

private static SQLiteDatabase myDataBase; 

public static ArrayList<Mall> getMall(){ 

    ArrayList<Mall> mallArrayList=new ArrayList<Mall>(); 

    String queryString="select id,title from malls order by title"; 

    myDataBase = SQLiteDatabase.openDatabase(DB_PATH,  null,SQLiteDatabase.OPEN_READONLY); 

    Cursor cursor=myDataBase.rawQuery(queryString, null); 

    if(cursor!=null){ 

    cursor.moveToFirst(); 

    while(!cursor.isLast()){ 

    Mall mall=new Mall(); 

    mall.setMallid(cursor.getInt(0)); 

    mall.setMallname(cursor.getString(1));    
    mallArrayList.add(mall); 
cursor.moveToNext(); 
    } } 
myDataBase.close(); 

return mallArrayList; 

}} 

回答

1

assets/文件夾無關與數據庫,直接。如果將數據庫放入assets/文件夾中,則需要將其從assets/文件夾複製到您希望數據庫駐留在實際文件系統中的位置。

+0

非常感謝。所以,如果我複製數據庫到SD卡。然後字段路徑 也是/data/data/com.SGMalls/databases/mallMapv2.sqlite「? 謝謝你 – user275788 2010-02-25 14:19:47

+0

我的意思是我只是設置複製路徑是:/data/data/com.SGMalls/databases/mallMapv2.sqlite 「 然後這個文件存儲在哪裏?嵌入在這個應用程序? 對不起。我是一個關於android開發的新手。 – user275788 2010-02-25 14:22:54

1

看一看這個link

您必須先撥打createDataBase()方法。如果createDataBase()成功運行,您可以檢查您的/data/data/com.SGMalls/databases/mallMapv2.sqlite確實存在。

如果它已經存在,它不會對它造成任何傷害。

copyDataBase()應該給你它是如何做,從資產../databases/複製一些解釋..