#asp.net #vb.net #parameters #listbox
#asp.net #vb.net #параметры #список
Вопрос:
Я использую asp.net с vb.net . Я создал 2 списка; lstselect и lstroles. List boxes 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
Спасибо!
Ответ №1:
Есть два способа сделать это:
1) Создайте значения, разделенные запятыми, из выбранных элементов вашего списка. Но это не рекомендуемый подход, поскольку вам нужно проанализировать его в вашей хранимой процедуре.
string commaSeparatedParams = string.Join(",", myArray);
2) Создайте XML, каждая роль была бы узлом. И передайте XML в качестве параметра вашей хранимой процедуры. Большинство баз данных поддерживают простое извлечение данных из XML. Кстати, какую базу данных вы используете?
3) Если вы используете MS SQL 2008, вы также можете использовать Table-Valued Parameters
: http://msdn.microsoft.com/en-us/library/bb510489.aspx
но это рекомендуется только для операций массовой вставки. Я бы сказал, что рекомендуемый подход для вас — XML.
Комментарии:
1. Я использую MS SQL Sever 2008.
2. можете ли вы более подробно объяснить, как использовать XML-метод, может быть, даже пример кода?
3. хотя это пример MS SQL 2005, концепция проиллюстрирована здесь: weblogs.asp.net/jgalloway/archive/2007/02/16 /…
Ответ №2:
Способ использования параметров с табличными значениями, наряду с рекомендациями по наилучшей практике, доступен здесь: