获取多列值

问题描述 投票:0回答:1

我正在尝试使用此查询在 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`

我得到与我的数据库匹配的结果。 我做错了什么?

感谢您的帮助,我是菜鸟...

android android-sqlite
1个回答
0
投票

我认为问题出在数据库行中。

假设

selectedType
ABC
selectedMelody
DEF
。现在,正如您所说,当您执行查询
Cursor c = newDB.rawQuery("SELECT * FROM Voicings WHERE Type=? AND Melody =?", condition);
时,它会产生 0 行。

因此,数据库中可能不存在同时具有

Type
=
ABC
Melody
=
DEF
的行。可能有行具有其中之一,但可能不存在同时具有这两者的行。

所以,我认为您应该首先检查数据库行。

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.