Android 如何连接到.sql文件中定义的现有数据库?

Android 如何连接到.sql文件中定义的现有数据库?,android,sqlite,Android,Sqlite,如果我们已经有一个.sql格式的数据库文件,我们如何在android应用程序中加载它并使用它的数据 我也有同样的问题,我照jaydeep说的做了。但是我不能继续……请帮帮我。我在此添加了1个方法来检索1条记录,如下所示: public Cursor getTitle(String g,String k) throws SQLException { Cursor c = myDataBase.rawQuery( "select * from titles where food

如果我们已经有一个
.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 food area 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();
}
请帮帮我

列表视图代码:

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); 
}
if(c.moveToFirst())
{ 
最后一个字符串[]restarr=c.getColumnNames();
字符串[]字段=新字符串[]{db.KEY_REST};
setAdapter(新的ArrayAdapter(this,R.layout.main,restarr));
SimpleCursorAdapter rest=newsimplecursoradapter(这是android.R.layout.simple_list_item_1,c,fields,newint[]{android.R.id.text1});
list.setAdapter(rest);
}

您需要
SQLite
版本的数据库。我敢打赌,您当前要发送到应用程序的数据库,其模式是用纯SQL语法编写的,与SQLite有很大不同

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

下面是一个很好的教程,介绍如何在android应用程序中发布外部本地数据库:


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

是的,我遵循了你给jus的相同链接,添加了获取标题方法。我在一个问题中提到的主文件中的更改。我一点也不获取wats gng错误尝试像这样打开数据库
SQLiteDatabase db=SQLiteDatabase.openDatabase(getDatabasePath(DBNAME),null,SQLiteDatabase.OPEN_READWRITE | SQLiteDatabase.OPEN_READWRITE)改为使用
DBhelper类openDatabase()
methodhey thnx man…它是wrkd..但现在将数据绑定到listview的问题来了这里是我做的d代码片段,如果(c.moveToFirst()){final String[]restarr=c.getColumnNames();String[]fields=new String[]{db.KEY\u REST};list.setAdapter(new ArrayAdapter(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);}这里对于字段数组存在问题,因为我不能使用这个db.col name
new ArrayAdapter(此,R.layout.main,restarr)
为什么要使用主布局?为什么要使用另一个适配器?为listview的项目视图创建一个新的适配器。其余代码对我来说似乎是合理的。这些是我唯一的评论。问题是只创建restarr适配器。因为我需要Parrell数据库列来绑定存储在fields数组中的数据。所以我喜欢String[]fields=newstring[]{myDbHelper.myDataBase.rest};(rest是col name),但它是gvs错误