簡體   English   中英

多項選擇清單

[英]Multiple Choice CheckBoxList

我有2個復選框,分別是國家和州。 現在,當用戶檢查一個國家/地區時,將顯示的國家/地區列表僅來​​自該國家/地區。 但是,當用戶檢查多個時,該怎么辦? 這是我的代碼。 我不確定如何在vb.net中進行for循環

cmd.CommandText = "SELECT distinct(a.AreaCode), b.AreaDescrip from tblUser a INNER JOIN tblArea b on a.AreaCode = b.AreaCode "
cmd.CommandText = cmd.CommandText & "WHERE CountryCode = N'" & Trim(Replace(cblCountry.SelectedValue, "'", "''")) & "'"""

就像@Dai所說的那樣,使用帶文字值的in查詢:

        'join selected items together
    Dim selectedItems = String.Join("','", cblCountry.Items.Cast(Of ListItem)().Where(Function(li) li.Selected).Select(Function(li) li.Value))

    'add joined string to command text
    cmd.CommandText = "SELECT distinct(a.AreaCode), b.AreaDescrip from tblUser a INNER JOIN tblArea b on a.AreaCode = b.AreaCode " & _
        "WHERE CountryCode IN ('" & selectedItems & "')"

或者最好使用參數化查詢,在該查詢中,將參數名稱添加到命令文本,然后將參數添加到命令對象,如下所示:

        'get selected item values
    Dim selectedItems = cblCountry.Items.Cast(Of ListItem)().Where(Function(li) li.Selected).Select(Function(li) li.Value)

    'create a named parameter for each selected item - parameter0, parameter1 and so on
    Dim parameters As String = String.Join(",", Enumerable.Range(0, selectedItems.Count()).Select(Function(x) "@parameter" + x))

    'Add parameter names to command text
    cmd.CommandText = "SELECT distinct(a.AreaCode), b.AreaDescrip from tblUser a INNER JOIN tblArea b on a.AreaCode = b.AreaCode " & _
        "WHERE CountryCode IN (" & parameters & ")"

    'add parameters to command object with values from selected items
    For p As Integer = 0 To selectedItems.Count() - 1
        cmd.Parameters.AddWithValue("@parameter" + p, selectedItems(p))
    Next

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM