我正在尝试通过android执行SQL查询 - 我目前无法这样做。当我尝试执行一个我已经验证有效的简单查询时,我收到一个致命错误并且应用程序关闭了:SELECT * FROM TblMovie WHERE MovieYear = 1975
然而 - 当我尝试在我的应用程序中这样做时:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbhelper = new DBHelper(this);
List<String> list = dbhelper.getData();
TextView textView1 = (TextView) findViewById(R.id.textView1);
TextView textView2 = (TextView) findViewById(R.id.textView2);
textView1.setText(list.get(0));
textView2.setText(list.get(1));
...
public List<String> getData() {
db = this.getReadableDatabase();
List<String> data = new ArrayList<String>();
Cursor c = db.rawQuery("SELECT * FROM TblMovie WHERE MovieYear = 1975", null);
while (c.moveToNext()) {
data.add(c.getString(0));
data.add(c.getString(1));
}
c.close();
db.close();
return data;
}
05-19 10:24:59.983: E/AndroidRuntime(24736): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/com.example.app.MainActivity}: android.database.sqlite.SQLiteException: no such table: TblMovie (code 1): , while compiling: SELECT * FROM TblMovie WHERE MovieYear = 1975
http://pastebin.com/0mAD87jJ
另外 - 我发现这篇文章作为参考:
No such table: (code 1) while compiling: SELECT * FROM event
我尝试在平板电脑上运行它而不是模拟器 - 仍然无效。我也尝试清除数据 - 这也不起作用。我的资产文件夹中有数据库,所以我不确定它为什么不起作用。
为什么选择downvote?我很确定这是一个有效的,不是非常严重的书面/文档/研究问题。
答案 0 :(得分:0)
试试这个:
String sql ="SELECT * FROM TblMovie WHERE MovieYear=?";
Cursor c = db.rawQuery(sql, new String[]{ String.valueOf(1975) });
答案 1 :(得分:0)
您是否使用创建脚本定义了onCreate函数? 谷歌的以下教程详细解释了这一点: http://developer.android.com/guide/topics/data/data-storage.html#db