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

Zac*_*ell 2 sqlite android

我有以下方法,执行时给出错误:

11-09 12:11:17.578:E/AndroidRuntime(21018):引起:android.database.sqlite.SQLiteException:没有这样的列:happy(代码1):,同时编译:select*from Bank where english = happy

方法是:

public boolean BankHas(Word currentWord) {
        openDataBase();
        Cursor cursor = myDataBase.rawQuery("select * from Bank where english = " + currentWord.english, null); 
        return cursor.moveToFirst();
    }
Run Code Online (Sandbox Code Playgroud)

我的餐桌计划:

CREATE TABLE `Bank` (
    `english`   TEXT
);
Run Code Online (Sandbox Code Playgroud)

Gir*_*hai 8

你错过了单引号,所以改变

"select * from Bank where english = " + currentWord.english
Run Code Online (Sandbox Code Playgroud)

"select * from Bank where english ='" + currentWord.english + "'"
Run Code Online (Sandbox Code Playgroud)

推荐的解决方案是使用参数化查询作为

Cursor cursor = myDataBase.rawQuery("select * from Bank where english =? ", new String [] {currentWord.english});
Run Code Online (Sandbox Code Playgroud)

并从中更改您的创建表

CREATE TABLE `Bank` (
    `english`   TEXT
);
Run Code Online (Sandbox Code Playgroud)

CREATE TABLE Bank (
    english TEXT
);
Run Code Online (Sandbox Code Playgroud)