Exception
我想为基金(数组)中的每个值运行我的SP。我应该通过在SP中传递数组在SP中执行此操作还是应该在c#中完成? 如果在c#中如何?我试过,它运行第一个值然后第二个值的循环它给出错误:
ConnectionString属性尚未初始化
(代码如下)如果在SP中如何?
答案 0 :(得分:2)
问题在于您放置using (strCon)
的位置 - 因为它在循环中然后在第一次放置strCon
之后,然后您将没有与数据库的打开连接使用
将using
移至foreach
:
using (strCon)
{
foreach (var fund in fundList)
{
SqlCommand cmd = new SqlCommand("[dbo].[z_Formulas2]", strCon);
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter sda = new SqlDataAdapter(cmd);
cmd.Parameters.Add(new SqlParameter("@Fund_ID", fund));
cmd.Parameters.Add(new SqlParameter("@XFund_ID", ""));
cmd.Parameters.Add(new SqlParameter("@Start_Dated", fromDate));
cmd.Parameters.Add(new SqlParameter("End_Dated", toDate));
sda.Fill(ds);
}
}
当前执行此操作的方法的替代方法是将数组作为参数传递给SP - 以便将所有这些来回保存到数据库中。为此,请检查this question