使用ADO.Net传递表值参数 [英] Pass table valued parameter using ADO.Net
本文介绍了使用ADO.Net传递表值参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何表值参数传递到存储过程使用ADO.Net?
解决方案
1在SQLServer,创建类型:
CREATE TYPE [DBO]。[MyDataType]如表
(
ID INT,
名NVARCHAR(50)
)
2创建过程
CREATE PROCEDURE [DBO]。[MyProcedure]
(
@myData为[DBO]。[MyDataType]只读
)
如
开始
SELECT * FROM @myData
结束
3的C#创建数据表
数据表myDataTable =新的DataTable(MyDataType);
myDataTable.Columns.Add(姓名,typeof运算(字符串));
myDataTable.Columns.Add(ID的typeof(的Int32));
myDataTable.Rows.Add(XYZ,1);
myDataTable.Rows.Add(ABC,2);
4创建SQL参数
的SqlParameter参数=新的SqlParameter();
parameter.ParameterName =@myData;
parameter.SqlDbType = System.Data.SqlDbType.Structured;
parameter.Value = myDataTable;
command.Parameters.Add(参数);
How to pass table valued parameter to stored procedure using ADO.Net?
解决方案
1 Create type in sql server:
CREATE TYPE [dbo].[MyDataType] As Table
(
ID INT,
Name NVARCHAR(50)
)
2 Create Procedure
CREATE PROCEDURE [dbo].[MyProcedure]
(
@myData As [dbo].[MyDataType] Readonly
)
AS
Begin
Select * FROM @myData
End
3 Create datatable in C#
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);
4 Create sql parameter
SqlParameter parameter = new SqlParameter();
parameter.ParameterName = "@myData";
parameter.SqlDbType = System.Data.SqlDbType.Structured;
parameter.Value = myDataTable;
command.Parameters.Add(parameter);
这篇关于使用ADO.Net传递表值参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文