私は、ストアドプロシージャを3回実行して失敗すると宣言する前に、この特定の状況が発生します。なぜなら、以前に開始されたジョブが終了したかどうかをチェックするためです。よりよいアプローチがあるかどうかを決めるために別の質問をするつもりです。しかし、今のところ私がやっていることがここにあります。SqlParameterCollection.Clearメソッドを使用した副作用はありますか?
mysqlparametersArray
do{
reader = MyStaticExecuteReader(query,mysqlparametersArray)
Read()
if(field(1)==true){
return field(2);
}
else{
//wait 1 sec
}
}while(field(1)==false);
MyStaticExecuteReader(query,mysqlparametersArray)
{
//declare command
//loop through mysqlparametersArray and add it to command
//ExecuteReader
return reader
}
今、この時折私は、このエラーを与えた:
The SqlParameter is already contained by another SqlParameterCollection.
いくつかの検索を行った後、私はパラメータコレクションをクリアし、この回避策を得たので、私はこれをしなかった:
今MyStaticExecuteReader(query,mysqlparametersArray)
{
//declare command
//loop through mysqlparametersArray and add it to command Parameters Collection
//ExecuteReader
command.Parameters.Clear()
return reader
}
私はそのエラーは表示されません。
質問:上記の.Clear()メソッドを使用して副作用がありますか?
注:上記はサンプルの疑似コードです。私は実際にリーダーを実行し、DALクラスの別のメソッドでパラメータコレクションを作成します。これは他の人によっても使用されます。パラメータを追加する前にパラメータコレクションが空であるかどうかを確認するのが良いかどうかは分かりません。
私の共有メソッドを示す私の更新されたコードをチェックしてください。 – gbs
問題はありません。 – Josh