C#如何遍历集合并给存储过程的变量赋值
时间: 2024-09-09 08:07:24 浏览: 43
c# 空合并运算符“??”的使用详解
在C#中,如果你想遍历集合并将元素传递给存储过程的变量,通常你会先将集合转换为适当的输入参数类型,比如`DataTable`、`DataSet`或者`SqlDataReader`,然后通过SQL命令调用存储过程。这里是一个简单的例子:
```csharp
using System;
using System.Data.SqlClient;
// 假设我们有一个List<string>集合
List<string> myCollection = new List<string>{"Value1", "Value2", "Value3"};
// 创建SqlConnection和SqlCommand实例
string connectionString = "your_connection_string_here";
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand("YourStoredProcedureName", connection);
// 将列表转换为DataTable
DataTable dataTable = new DataTable();
dataTable.Columns.Add("InputColumn");
foreach (string value in myCollection)
{
DataRow newRow = dataTable.NewRow();
newRow["InputColumn"] = value;
dataTable.Rows.Add(newRow);
}
// 添加DataTable作为SqlParameter的Value
SqlParameter parameter = new SqlParameter("@InputParameter", SqlDbType.VarChar);
parameter.Value = dataTable;
// 打开连接并执行存储过程
connection.Open();
command.Parameters.AddWithValue(parameter.ParameterName, parameter);
command.ExecuteNonQuery(); // 或者使用ExecuteReader()如果需要返回结果
// 关闭连接
connection.Close();
阅读全文