打开sqlite数据库失败

时间:2010-02-25 14:05:53

标签: android

我把我的sqlite数据库文件放在“assets”文件夹中我写了一个DAO calss来从数据库中获取数据,但log.e中的信息意味着我无法打开数据库。

public class 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;

}}

2 个答案:

答案 0 :(得分:1)

assets/文件夹直接与数据库无关。如果将数据库放在assets/文件夹中,则需要将其从assets/文件夹复制到您希望数据库驻留在实际文件系统中的位置。

答案 1 :(得分:1)

看看这个link

您必须先调用createDataBase()方法。如果createDataBase()成功运行,您可以检查/data/data/com.SGMalls/databases/mallMapv2.sqlite是否真的存在。

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

copyDataBase()应该给你一些解释,说明如何从资产复制到../ databases /.../ p>