2013-10-11 2 views
0

Есть ли способ передать объект списка в качестве параметра хранимой процедуры?Передача списка вместо параметра sql в хранимую процедуру

для например,

List<class1> Allobj = new List<class1>(); 
// assume Allobj .Count=5,(5 class1 objects) 

теперь вызывают хранимую процедуру, как

intResult = _helper.ExecuteNonQuery(base.Transaction, CommandType.StoredProcedure, "usp_InsertpurchaseEnquirydetails", Allobj); 

или есть другой способ передать список (по крайней мере добавления в многомерный массив SqlParameter?

Если возможно, как пройти, а также как отбирать его из хранимой процедуры?

+0

** [Эта статья] (http://www.sommarskog.se/arrays-in-sql.html) ** - отличный ресурс, который проходит через ваши варианты работы с коллекциями в SQL-Server. – Michael

+0

Вы пишете ** SQL ** (язык структурированных запросов) и действительно ли это означает Microsoft ** SQL Server ** (фактический продукт)? Если нет: ** для чего нужна система баз данных? –

ответ

1

Вы ищете TableValueParameters. Начиная с SqlServer 2008 эта функция добавляется. Это поможет вам в качестве параметра передать DataTable.

Заканчивать Table-Valued Parameters в MSDN

1

Вы можете использовать параметр значение Таблица передать таблицу или список SQL хранимых процедур

шаги Вкратце:

1) Создание параметра значение таблицы в SQL управление сервером студии

2) Определение параметра в качестве параметра создается табличное значение (оно должно быть только для чтения)

3) Установите # зр параметр типа C для System.Data.SqlDbType.Structured

4) Пройдите свой список как CLR DataTable к хранимой процедуре

Рева ссылка полный пример кода:

http://www.codeproject.com/Articles/39161/C-and-Table-Value-Parameters

Смежные вопросы