0

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

例如,

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

现在将存储过程称为

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

还是有任何其他方法可以传递列表(至少添加到多维 sqlparameter 数组?

如果可能,如何传递以及如何从存储过程中对其进行迭代?

4

2 回答 2

1

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

简要步骤:

1)在SQL server management studio中创建表值参数

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

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

4)将您的列表作为 CLR DataTable 传递给存储过程

下面的链接是一个完整的代码示例:

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

于 2013-10-11T06:23:40.037 回答
1

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

查看msdn中的表值参数

于 2013-10-11T06:17:06.243 回答