如何从SQLite数据库的特定行中获取值?
问题描述:
我有以下表和它的正常工作:如何从SQLite数据库的特定行中获取值?
public static final String BookID = "books_ID";
public static final String Book = "books";
public static final String Author = "Authors";
private static final String BookAuthor_TABLE = bookAuthor_Table";
private static final String[] BookAuthor_AllKeys = new String[] { BookID, Book, Author };
private static final String BookAuthor_CREATE =
"CREATE TABLE " + BookAuthor_TABLE + "("+
BookID + " INTEGER PRIMARY KEY," +
Book + " TEXT," +
Author + " TEXT)";
......
......
public ArrayList<String> getSpecificColumn(String book) {
ArrayList<String> AUTHOR_ARRAYLIST;
AUTHOR_ARRAYLIST = new ArrayList<String>();
db = getWritableDatabase;
String WHERE = Book + "=" + book;
Cursor cursor = db.query(BookAuthor_TAB, BookAuthor_AllKeys, WHERE, null, null, null, null);
while(cursor.moveToNext())
{
String AUTHOR = cursor.getString(cursor.getColumnIndex(Author));
AUTHOR_ARRAYLIST.add(AUTHOR);
}
return AUTHOR_ARRAYLIST;
}
MainActivity:
String book = “Jeff Jordan”
AUTHOR_ARRAY = MySQLITE_DATABASE.getSpecificColumn(book);
System.out.println(AUTHOR_ARRAY);
为什么会出现这个错误
(1) no such column: Jeff Jordan ?????
我检查表,并有是“杰夫·乔丹”的专栏作者。
我做错了什么?
非常感谢
答
字符串文本应该在'single quotes'
否则他们被当作标识,如列名。
它甚至更好,使用?
参数虽然:
String WHERE = Book + "=?";
Cursor cursor = db.query(BookAuthor_TAB, BookAuthor_AllKeys,
WHERE, new String[] { book },
null, null, null);
耶稣基督,我快要哭了。我花了很多时间在网上搜索并进行故障排除,但从未奏效。你真的帮了我很多。非常感谢!对此,我真的非常感激 – User2014 2014-10-01 12:57:06