我正在尝试使用此查询在 newDB 中查找记录。
String[]condition=new String[] {selectedType,selectedMelody};
Cursor c = newDB.rawQuery("SELECT * FROM Voicings WHERE Type=? AND Melody =?", condition);
//Now iterate with cursor
没有找到任何记录,光标为空。我有符合这两种条件的声音...
如果我这样做:
``
`String[]condition=new String[] {selectedType};
Cursor c = newDB.rawQuery("SELECT * FROM Voicings WHERE Type=? ", condition);
//Now iterate with cursor`
``
或者那个
`String[]condition=new String[] {selectedMelody};
Cursor c = newDB.rawQuery("SELECT * FROM Voicings WHERE Melody =?", condition);
//Now iterate with cursor`
我得到与我的数据库匹配的结果。 我做错了什么?
感谢您的帮助,我是菜鸟...
我认为问题出在数据库行中。
假设
selectedType
是 ABC
,selectedMelody
是 DEF
。现在,正如您所说,当您执行查询 Cursor c = newDB.rawQuery("SELECT * FROM Voicings WHERE Type=? AND Melody =?", condition);
时,它会产生 0 行。
因此,数据库中可能不存在同时具有
Type
= ABC
和 Melody
= DEF
的行。可能有行具有其中之一,但可能不存在同时具有这两者的行。
所以,我认为您应该首先检查数据库行。
希望这有帮助。