2012-08-17 32 views
0

在我以前的項目中,我保持單選按鈕,如果選擇了任何單選按鈕(主題),我會動態地將該特定ID 發送到查詢。但是現在我需要保留複選框而不是單選按鈕,這意味着可以進行多項選擇。 因此,如果選中多個複選框,我如何將ID發送到查詢來檢索數據。如何將多個選定的值發送到android中的數據庫查詢?

SELECT * FROM MYTABLE其中添加my_id = 92

在代替92上面的查詢我動態傳遞值。但是現在,如果我選擇了多個複選框,那麼如何將這些值動態地發送到查詢 以及如何顯示數據庫表中的數據。

有人可以幫我解決這個問題。 在此先感謝。

回答

0

SELECT * FROM mytable WHERE my_id = 92 OR my_id = 93怎麼樣?

你也應該使用提供與Android的API,像這樣:

final Cursor c = mDb.query(true, "mytable", 
      new String[] { "name, description, title" }, // columns 
      "myid = ? OR myid = ?", // WHERE 
      new String[] { "92", "93" }, // WHERE args 
      null, // GROUPBY *** 
      null, // HAVING *** 
      null, // ORDER BY *** 
      null); // LIMIT 
+0

嗨,感謝您的回覆。例如,我有8個複選框,先說我選擇了第一個4,然後我再次取消選擇這些複選框並選中下面四個複選框。所以現在只有我選擇的最後四個chk box id應該動態查詢。我怎樣才能做到這一點?如果我按照使用或符號的方式給出,那麼所有ID的數據將被顯示出來。 – Amrutha 2012-08-17 12:44:37

2

你可以嘗試像SELECT * FROM mytable WHERE my_id IN (92,93,94),加上括號任意數量的id的。

現在有趣的部分進入如何動態地建立該字符串。我的建議是使用迭代遍歷你的id列表來建立一個字符串。

String whereClause = "my_id IN ("; 

for (String id : idList) { 

    if (whereClause.charAt(whereClause.length - 1) != "(") { 
     whereClause += ","; 
    } 

    whereClause += id; 
}   

whereClause += ")"; 

一旦你有了這個字符串內置可以將其傳遞到你的數據庫的查詢方法爲selection paramater。

相關問題