SQLiteException:没有这样的表:(代码1)

时间:2015-05-19 14:39:50

标签: android sqlite android-sqlite fatal-error forceclose

我正在尝试通过android执行SQL查询 - 我目前无法这样做。当我尝试执行一个我已经验证有效的简单查询时,我收到一个致命错误并且应用程序关闭了:SELECT * FROM TblMovie WHERE MovieYear = 1975

然而 - 当我尝试在我的应用程序中这样做时:

MainActivity:

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));

...

DBHelper:

 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;  
    }

logcat的:

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?我很确定这是一个有效的,不是非常严重的书面/文档/研究问题。

DB截图:

http://i.stack.imgur.com/IwkDQ.png

2 个答案:

答案 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