0

我创建了一个命令(Stord proc)并添加了两个参数。然后我想遍历一个数组并简单地在每个循环上重新分配两个参数并执行查询。我最初使用cmd.Parameters.AddWithValue(name,value)INSIDE 循环,这表明我的参数数量在每次循环迭代时增加 2(它有效——但仍然不是好的设计)。但是,我想以正确的方式做到这一点。

我还尝试在每次循环迭代结束时清除参数列表并在循环中重新添加参数——但这根本不起作用。没有任何东西被插入到数据库中

如何在循环外为命令分配/创建两个参数,然后在循环内为这两个参数分配新值并执行?

//Set command text

//Create both parameters

//loop

  // assign parameter 1
  // assign parameter 2

  // execute command

//end loop
4

2 回答 2

4

您可以简单地使用参数的索引来重新分配值。

SqlCommand cmd = new SqlCommand("Select * from tbl where id = @id AND otherID = @other");
cmd.Parameters.Add("@id", SqlDbType.Int);
cmd.Parameters.Add("@other", SqlDbType.Int);

for (int i = 0; i < 10; i++)
{
   cmd.Parameters["@id"].Value = i;
   cmd.Parameters["@other"].Value = i * 10;

   cmd.Execute();
}
于 2013-10-18T10:19:51.573 回答
0

像这样的东西:

//Set command text

//Create both parameters
command.Parameters.Add("@ID", SqlDbType.Int);
command.Parameters.Add("@Age", SqlDbType.Int);

//loop

// assign parameter 1
// assign parameter 2
command.Parameters["@ID"].Value = customerIDs[i];
command.Parameters["@Age"].Value = customerAges[i];


// execute command

//end loop
于 2013-10-18T10:19:43.067 回答