关于sql存储过程接收参数为datatable

1.首先你的sql server 必须是2008以上版本;


2.自定义表类型,在类型下面的用户自定表类型下可查看

         语法:  create type table_name  as table( 字段),字段部分为创建普通的表一样,如  id  int 


3.存储过程引用

      create procedure  pro_name(

@table table_name readonly

)

@table 为参数名,table_name为自定义表类型名


4.存储过程调用

参数:IDataParameter[] para ={

new SqlParameter("@Table",SqlDbType.Structured)

};

para[0].Value = dt;

DataSet ds = DbHelperSQL.RunProcedure("pro_name",para);

说明:dt为需要传入的datatable

 DbHelperSQL.RunProcedure 为自定义的方法。个人请照自己的调用模式


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 SQL Server 存储过程接收 DataTable 数据类型,需要先使用 User-Defined Table Type 创建一个用户自定义表类型,然后在存储过程中使用该类型作为输入参数。 以下是一个示例: 首先创建一个用户自定义表类型: ```sql CREATE TYPE [dbo].[MyTableType] AS TABLE( [ID] [int] NOT NULL, [Name] [nvarchar](50) NOT NULL ) ``` 然后,在存储过程中使用该类型作为输入参数: ```sql CREATE PROCEDURE [dbo].[MyStoredProcedure] @MyTable [dbo].[MyTableType] READONLY AS BEGIN -- 在存储过程中可以使用 @MyTable 参数进行操作,例如: SELECT * FROM @MyTable END ``` 在 C# 中,可以使用 DataTable 类型的数据填充 SqlParameter,并将其传递给存储过程: ```csharp // 创建 DataTable 对象 DataTable dt = new DataTable(); dt.Columns.Add("ID", typeof(int)); dt.Columns.Add("Name", typeof(string)); dt.Rows.Add(1, "John"); dt.Rows.Add(2, "Mary"); // 创建 SqlParameter 参数 SqlParameter parameter = new SqlParameter(); parameter.ParameterName = "@MyTable"; parameter.SqlDbType = SqlDbType.Structured; parameter.Value = dt; parameter.TypeName = "dbo.MyTableType"; // 执行存储过程 using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = new SqlCommand("dbo.MyStoredProcedure", connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add(parameter); connection.Open(); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { // 处理返回结果 } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值