我可以重用一个C#SqlParameter

时间:2009-07-10 02:55:51

标签: c# sql

我每隔10秒做一次连续选择,所以我想我会做一些过早的操作并保存在每个循环中创建一个cmd和paramater对象

如果我在一种方法中这样做

public void FirstSelect() {

    // select data
    this.cmdSelectData = new SqlCommand(SQL_SELECT_DATA, conn);

    this.paramBranchId = new SqlParameter("@branch_id", 1);
    this.cmdSelectData.Parameters.Add(paramBranchId);

    // fetch data blah, blah, blah...
}

然后用另一种方法

public void SecondSelect() {

    this.paramBranchId.Value = 2;
   // fetch data
}

会按预期工作,一个选择使用分支1,一个选择使用分支2 或者我需要

this.cmdSelectData.Parameters.Clear();
ths.cmdSelectData.Parameters.Add(new SqlParameter( // for branch 2)

}

2 个答案:

答案 0 :(得分:5)

是的,在现有参数上设置值确实会影响命令的后续执行。如果你想用一个或多个参数的不同值执行相同的命令几次,这是非常方便的,而不必每次都重建整个事件。

答案 1 :(得分:1)

您需要为每个添加的参数创建一个新参数。