再もあります:「ありがとう、それはリスト項目をループに悪いですが、とcすべてのストアドプロシージャは何回ですか? 1つのストアドプロシージャですべてを行うのではなく、 - xrum Jan 19 at 16:55 "
もしあなたがそれについて考えているなら、あなたはどこかで何か反復をやっているでしょう - あなたの値をすべてリストにロードして、記述どおりに更新するのはどうですか?これは少しあなたの特定のuseageにチューニングする必要があります、私は確かではないよ、あなたの組み立てで何をしているか、明らかに
Dim CommandText As String = _
"UPDATE MyTYable SET SomeField = @SomeField " & _
"WHERE UserID = @UserID"
Using cn As New SqlClient.SqlConnection(MyConnectionString)
Using cmd As New SqlClient.SqlCommand(cn, CommandText)
'The Record key in the database:
cmd.Parameters.AddWithValue("@UserID", -1)
'Whatever it is you plan to UPDATE:
cmd.Parameters.Add("@SomeField", "")
cn.Open()
For Each Item As ListItem In ris
cmd.Parameters("@UserID").Value = Item.Value
cmd.Parameters("SomeField").Value = SomeValueFromSomeWhere
cmd.ExecuteNonQuery()
Next
End Using
End Using
:それは私だった、私はちょうど私が一度だけの接続を開いたことを確認しますユーザIDのリストであるが、上記のコードスケルトンは、全体的な接続の開閉のオーバーヘッドを招くことなく、一連のINSERTまたはUPDATESを実行する比較的効率的な手段を表す。
実行する必要がある更新の数が本当に厄介な場合は、上記の文字列連結方法のほうが効率的であるか、またはすべての値をUPDATEDにすばやく挿入して裏面Dbの一時表に挿入します、サーバー上の一括INSERTを処理するSELECT INTOステートメントが続きます。
ありがとう、リスト項目をループして何度もストアドプロシージャを呼び出すのは悪いですか? 1つのストアドプロシージャですべてを行うのではなく、 –