将列表代替 sql 参数传递给存储过程

本文关键字:参数传递 存储过程 sql 列表 | 更新日期: 2023-09-27 18:34:47

有没有办法将列表对象作为存储过程的参数传递?

例如,

List<class1> Allobj = new List<class1>();
// assume Allobj .Count=5,(5 class1 objects)

现在将存储过程调用为

intResult = _helper.ExecuteNonQuery(base.Transaction, CommandType.StoredProcedure, "usp_InsertpurchaseEnquirydetails", Allobj );

或者有没有其他方法可以传递列表(至少添加到多维 sqlparameter 数组?

如果可能,如何传递以及如何从存储过程迭代它?

将列表代替 sql 参数传递给存储过程

您正在寻找TableValueParameters .从 SqlServer 2008 开始,添加了此功能。它将帮助您将DataTable作为参数传递。

签出 msdn 中的表值参数

可以使用表值参数将表或列表传递给 SQL 存储过程

步骤简介:

1( 在 SQL 服务器管理工作室中创建表值参数

2(定义一个参数作为创建的表值参数(应该是只读的(

3( 将 C# sp 参数类型设置为 System.Data.SqlDbType.Structured

4( 将列表作为 CLR 数据表传递给存储过程

波纹管链接是一个完整的代码示例:

http://www.codeproject.com/Articles/39161/C-and-Table-Value-Parameters