В SQL Server 2008 мы можем определить тип таблицы и использовать ее как параметры хранимой процедуры. Но как я могу использовать его при вызове С# этого SP? Другими словами, как создать таблицу или список и передать его в хранимую процедуру в коде С# с этой новой функцией SQL Server 2008?
Как передать пользовательский тип таблицы как хранимый параметр в С#
Ответ 1
Вам нужно увидеть этот пример в CodeProject.
SqlParameter param = cmd.Parameters.AddWithValue("@FileDetails", dt);
где dt - DataTable, а параметр @fileDetails - это тип таблицы в SQL:
create type FileDetailsType as table
(
FileName varchar(50),
CreatedDate varchar(50),
Size decimal(18,0)
)
Edit: Эта статья руководства для разработчиков MSDN также поможет.
Ответ 2
Самый простой способ - передать DataTable
в качестве параметра. Ознакомьтесь с некоторыми примерами здесь.
Ответ 3
Из Табличные параметры, связанные с Jeff Meatball Yang answer
System.Data.SqlClient поддерживает заполнение табличных параметров из объектов DataTable, DbDataReader или System.Collections.Generic.IEnumerable([T: System.Collections.Generic.IEnumerable`1)]. Вы должны указать имя типа для параметра table-valued, используя свойство TypeName для SqlParameter. ТипName должен соответствовать имени совместимого типа, ранее созданного на сервере. Следующий фрагмент кода демонстрирует, как настроить SqlParameter для вставки данных.