如果我们已经有一个.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/
注意数据库文件的版本和扩展名。