簡體   English   中英

ListBox 中的多個值

[英]Multiple Values from ListBox

我正在使用 asp.net 和 vb.net。 我創建了 2 個列表框; lstselect 和 lstroles。 列表框 lstselect 包含可以添加到 lstroles 中的所有可用角色。 存儲過程運行時,如何將已添加到 lstroles 中的角色作為參數拉入我的數據庫?

這是我的列表框如何共享角色的代碼:

Protected Sub btnRight_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnRight.Click
    If lstselect.SelectedIndex <> -1 Then
        lstroles.Items.Add(lstselect.SelectedItem.Text)
        lstselect.Items.Remove(lstselect.SelectedItem.Text)
    End If
End Sub

Protected Sub btnLeft_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLeft.Click
    If lstroles.SelectedIndex <> -1 Then
        lstselect.Items.Add(lstroles.SelectedItem.Text)
        lstroles.Items.Remove(lstroles.SelectedItem.Text)
    End If
End Sub

謝謝!

此處提供了使用表值參數的方法以及最佳實踐建議:

http://www.sommarskog.se/arrays-in-sql-2008.html

有兩種方法可以做到:

1)從您的列表框選定項目中創建一個逗號分隔的值。 但這不是推薦的方法,因為您需要在存儲過程中解析它。

string commaSeparatedParams = string.Join(",", myArray);

2) 創建一個 XML,每個角色都是一個節點。 並通過 XML 作為您的存儲過程參數。 大多數數據庫支持從 XML 輕松檢索數據。 順便說一句,您使用的是哪個數據庫?

3) 如果您使用的是 MS SQL 2008,您還可以使用Table-Valued Parametershttp://msdn.microsoft.com/en-us/library/bb510489.aspx

但它只推薦用於批量插入類型的操作。 我會說,為您推薦的方法是 XML。

暫無
暫無

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

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