我已經嘗試了所有可以用這個SQLite語句思考的東西。我有下面的代碼,我試圖運行。誰能告訴我爲什麼我的sqlite聲明不起作用?
public ArrayList getData(int i)
{
data = new ArrayList();
try
{
Statement stat2;
stat2 = conn.createStatement();
System.out.println(i);
PreparedStatement prep9 = conn.prepareStatement("SELECT * FROM tbl_INPUT_OBJECTS WHERE cardID = ?;");
prep9.setInt(1, i);
ResultSet rs2 = prep9.executeQuery();
while (rs2.next())
{
System.out.println(3);
IOdevice.get("IOdevice" + (rs2.getInt("id") - (16 * (i - 1)))).setId(rs2.getInt("id") - (16 * (i - 1)));
IOdevice.get("IOdevice" + (rs2.getInt("id") - (16 * (i - 1)))).setDescription(rs2.getString("description"));
System.out.println(4);
System.out.println(rs2.getString("description"));
System.out.println(rs2.getInt("id") - (16 * (i - 1)));
System.out.println(IOdevice.get("IOdevice" + (rs2.getInt("id") - (16 * (i - 1)))));
System.out.println(rs2.getBoolean("state"));
System.out.println(rs2.getString("type"));
System.out.println("IOdevice" + (rs2.getInt("id") - (16 * (i - 1))));
IOdevice.get("IOdevice" + (rs2.getInt("id") - (16 * (i - 1)))).setState(rs2.getBoolean("state"));
IOdevice.get("IOdevice" + (rs2.getInt("id") - (16 * (i - 1)))).setType(rs2.getString("type"));
}
rs2.close();
stat2.close();
System.out.println(5);
......etc.
我的數據庫,我在看是這樣的:
從程序的這一部分我的輸出是:
1
5
它應該是:
1
3
4
5
任何人都可以給我建議,我做錯了什麼?
注意:下面的代碼不工作,所以它不是數據庫本身......(至少我不認爲這是)。
Statement stat;
stat = conn.createStatement();
ResultSet rs = stat
.executeQuery("SELECT * from tbl_TEST WHERE cardID = " + i
+ ";");
while (rs.next())
{
data.add(rs.getInt("id"));
data.add(rs.getString("lblDescriptionProp"));
data.add(rs.getString("lblAddressProp"));
data.add(IOdevice);
for (int j = 1; j <= 32; j++)
{
IOdevice.get("IOdevice" + j).getDescription();
IOdevice.get("IOdevice" + j).getState();
IOdevice.get("IOdevice" + j).getType();
}
}
rs.close();
stat.close();
如果還有其他東西我可以提供,那麼讓我知道 – Dylan 2012-08-07 12:33:07
是int類型的cardID? – Razvan 2012-08-07 12:36:05
@Razvan不,我沒有指定任何類型,因爲我認爲我早些時候遇到了麻煩(這可能只是嘿,這是工作日結束,所以我要去史詩般的東西雖然失敗) – Dylan 2012-08-07 12:37:45