Nar*_*ara 72
在SQL Server中创建类型:
CREATE TYPE [dbo].[MyDataType] As Table
(
ID INT,
Name NVARCHAR(50)
)
Run Code Online (Sandbox Code Playgroud)创建程序:
CREATE PROCEDURE [dbo].[MyProcedure]
(
@myData As [dbo].[MyDataType] Readonly
)
AS
BEGIN
SELECT * FROM @myData
END
Run Code Online (Sandbox Code Playgroud)在C#中创建DataTable:
DataTable myDataTable = new DataTable("MyDataType");
myDataTable.Columns.Add("Name", typeof(string));
myDataTable.Columns.Add("Id", typeof(Int32));
myDataTable.Rows.Add("XYZ", 1);
myDataTable.Rows.Add("ABC", 2);
Run Code Online (Sandbox Code Playgroud)创建SQL参数:
SqlParameter parameter = new SqlParameter();
parameter.ParameterName = "@myData";
parameter.SqlDbType = System.Data.SqlDbType.Structured;
parameter.Value = myDataTable;
command.Parameters.Add(parameter);
Run Code Online (Sandbox Code Playgroud)Mat*_* M. 17
我试过这个并收到了例外:
表类型参数"@MyDataType"必须具有有效的类型名称.
我必须设置SqlParameter的"TypeName"属性:
parameter.TypeName = "MyDataType";
Run Code Online (Sandbox Code Playgroud)