Най-лесният вариант е да създадете DataTable
в C# код и го предайте като параметър на вашата процедура. Ако приемем, че сте създали дефиниран от потребителя тип таблица като:
CREATE TYPE [dbo].[userdefinedtabletype] AS TABLE(
[ID] [varchar](255) NULL,
[Name] [varchar](255) NULL
)
тогава във вашия C# код бихте направили:
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof (string));
dt.Columns.Add("Name", typeof (string));
//populate your Datatable
SqlParameter param = new SqlParameter("@userdefinedtabletypeparameter", SqlDbType.Structured)
{
TypeName = "dbo.userdefinedtabletype",
Value = dt
};
sqlComm.Parameters.Add(param);
Не забравяйте да посочите SqlDbType.Structured
като тип параметър и посочете името, което сте използвали при създаването на вашия UDT.