我正在尝试根据文本视图中的字符串从数据库中选择特定行。我运行它时的错误日志似乎说它正在寻找一列,但它应该寻找一行。错误日志说:
--I/Database(279): sqlite returned: error code = 1, msg = no such column: Book
--D/AndroidRuntime(279): Shutting down VM
--W/dalvikvm(279): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
--E/AndroidRuntime(279): FATAL EXCEPTION: main
--E/AndroidRuntime(279): android.database.sqlite.SQLiteException: no such column: Book: , while compiling: SELECT book, background FROM bookbackgrounds WHERE book=Book
这是从 textview 获取字符串的代码,然后运行一个应该以文本字符串形式返回文件名的方法,然后在第二个 textview 中显示返回的字符串:
String bkString = showBooktextview.getText().toString();
bga.open();
String newBKstring = bga.getBGforBook(bkString);
bga.close();
showDBBooktextview.setText(newBKstring);
这是错误表示没有带有该书名的列的方法。(它应该正在寻找包含该书名的 ROW):
public String getBGforBook(String bkString) {
String[] thecolumns = new String[] { KEY_BOOK, KEY_BACKGROUND };
Cursor cursor = db.query(DB_TABLE, thecolumns, KEY_BOOK + "=" + bkString, null, null, null, null);
String result = "";
if (cursor != null){
cursor.moveToFirst();
result = result
+ cursor.getString(1);
}
return null;
}
那么方法写错了吗?如果是这样,如何正确编写它以查找包含书名字符串的行?