2011-06-09 54 views
0

我正在使用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 

謝謝!

回答

0

有兩種方法可以做到這一點:

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,我會說。

+0

我使用MS SQL Sever的2008 – Matituk 2011-06-10 12:35:55

+0

甚至更​​好,請查看更新的答案。 – Akhil 2011-06-10 15:16:42

+0

您能否更詳細地解釋如何執行XML方法,甚至可能是示例代碼? – Matituk 2011-06-23 17:38:58