如果我们已经有.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);
}
答案 0 :(得分:2)
您需要SQLite
版本的数据库。我打赌你想要发送到应用程序的当前数据库,使用纯SQL语法编写的模式与SQLite完全不同。
如果我的假设是正确的,那么您需要提取架构并将其转换为SQLite。这需要对语法进行一些小的改动,但逻辑保持不变。
这是一个很好的教程,如何在Android应用程序中发布外部本地数据库:
http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/
注意数据库文件的版本和扩展名。