打开sqlite数据库失败

问题描述:

我把我的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; 

}} 

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

看一看这个link

您必须先拨打createDataBase()方法。如果createDataBase()成功运行,您可以检查您的/data/data/com.SGMalls/databases/mallMapv2.sqlite确实存在。

如果它已经存在,它不会对它造成任何伤害。

copyDataBase()应该给你它是如何做,从资产../databases/复制一些解释..