2009-07-10 1 views
3

C#のSqlParameterを再利用することができますので、私は私は1つの方法でこれを行う場合、私はいくつかの時期尚早optimsingを行うと、everyloopは、私は継続的にすべての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を使用して選択3210または私はあなたが追加し、それぞれに新しいパラメータを作成する必要が

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

}

+0

あなたは質問を完了するつもりでしたか? –

+0

申し訳ありません私はそれを完了した前に投稿を誤って提出 – bumperbox

答えて

5

はい、既存のパラメータに[値]を設定すると、後続のコマンドの実行に影響します。毎回全体を再構築することなく、1つ以上のパラメータに対して異なる値で同じコマンドを数回実行したい場合は、非常に便利です。

+2

+1。しかし、実際には、バグが導入されやすい(保守時など)コードを導く可能性があるため、パラメータインスタンスを再利用したくない(または、他のタスクの変数を再利用することを好む) –

+1

うん、どこに来るのか分かっているから、ミッチ。私は実際には、それがただ一つのパラメータだけの*非常に*単純なコマンドであるときにこれを行うだけです。 –

1

する必要があります。

+0

マットの完全な答えを見る(私は質問が完了した前に答えた!) –

関連する問題