如果我们已经有一个.sql格式的数据库文件,如何将其加载到我们的android应用中并使用其数据?

我也遇到了同样的问题,我做了jaydeep所说的。但是我无法继续..请帮助我。我在其中添加了1个方法来检索1条记录,如下所示:

public Cursor getTitle(String g,String k) throws SQLException {
    Cursor c = myDataBase.rawQuery(
      "select * from titles where food LIKE '%"+g+"%' and area LIKE '%"+k+"%' ",
    null);
    if (c != null) {
        c.moveToFirst();
    }
    return c;
}


其中titles是数据库中表的ID名称n食物区域n rest是字段。在主文件中,我做了如下操作:

{
    Datahelper myDbHelper = new Datahelper(this);
    final String tem="Chinese";
    final String tem2="Bur Dubai";

    final ListView list = (ListView)findViewById(R.id.list);

    try {
        myDbHelper.createDataBase();
    } catch (IOException ioe) {
        throw new Error("Unable to create database");
    }

    try {
        myDbHelper.openDataBase();
    }catch(SQLException sqle){
        throw sqle;
    }
    Cursor c = myDbHelper.getTitle(tem,tem2);

    if (c.moveToFirst()) DisplayTitle(c);
    else Toast.makeText(this, "No title found",
      Toast.LENGTH_LONG).show();
}

public void DisplayTitle(Cursor c) {
    final TextView ter=(TextView)findViewById(R.id.ter);
    c.moveToPosition(0);
    while (c.isAfterLast() == false) {
        ter.append(c.getString(3)+"\n");
        c.moveToNext();
    }
    c.close();
}


请帮我。

ListView代码:

if (c.moveToFirst())
{
final String [] restarr=c.getColumnNames();

String[] fields = new String[] {db.KEY_REST};

list.setAdapter(new ArrayAdapter<String>(this, R.layout.main, restarr));

SimpleCursorAdapter rest = new SimpleCursorAdapter(this,android.R.layout.simple_list_item_1,c,fields, new int[] {android.R.id.text1});

list.setAdapter(rest);
}

最佳答案

您需要数据库的SQLite版本。我敢打赌,您要传送到应用程序的当前数据库具有使用纯SQL语法编写的架构,该语法与SQLite完全不同。

如果我的假设是正确的,那么您需要提取架构并将其转换为SQLite。这需要对语法进行一些小的更改,但是逻辑保持不变。

这是一个很好的教程,您如何在Android应用程序中运送外部本地数据库:

http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

注意数据库文件的版本和扩展名。

09-11 17:14
查看更多