如何在C#中将用户定义的表类型作为存储过程参数传递

Son*_*Lee 20 c# sql-server-2008

在SQL Server 2008中,我们可以定义表类型并将其用作存储过程的参数.但是如何在这个SP的C#调用中使用它呢?换句话说,如何使用SQL Server 2008的这一新功能创建表或列表并将其传递到C#代码中的存储过程?

Jef*_*ang 20

您需要在CodeProject上看到此示例.

SqlParameter param = cmd.Parameters.AddWithValue("@FileDetails", dt); 
Run Code Online (Sandbox Code Playgroud)

其中dt是DataTable,@ fileDetails参数是SQL中的表类型:

create type FileDetailsType as table
(
    FileName        varchar(50),
    CreatedDate        varchar(50),
    Size       decimal(18,0)
)
Run Code Online (Sandbox Code Playgroud)

编辑: 这篇MSDN开发人员指南文章也会有所帮助.