使用ADO.Net传递表值参数 [英] Pass table valued parameter using ADO.Net

查看:228
本文介绍了使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆