OleDb系(OleDbCommandとか、OleDbConnection)ではなく、SQL Serverなら、System.Data.SqlClient
名前空間にある、SqlConnectionやSqlDataReaderやSqlCommand使えば問題解決するかもしれませんが、自信はありません。
後は、気になったのは、同じテーブルを読んでいる最中、同じテーブルを更新するわけですよね?ロックがかかったために残りの9件の更新がおかしくなった可能性はありますが、こちらも正直、自信なしです。
ただ、気になった点としては、上記のプログラムを見る限りでは、FETCH(Read)させなくても、UPDATE文で更新すれば辻褄合いますよね?結局、下記と同じことだと思いますが、下記じゃダメですか?
dim 肝炎B as long
dim cq as string
dim Db As new System.Data.OleDb.OleDbConnection
Dim CDBkanjyaCw As new System.Data.OleDb.OleDbCommand
Db.ConnectionString = "Provider=SQLOLEDB;Data Source=kokoro00;User ID=sa;Password=kokorocenter;Initial Catalog=kokoro"
Db.Open()
CDBkanjyaCw.Connection = Db
cq = " UPDATE kanjya "
cq += " SET 肝炎B = " & 肝炎B.ToString
CDBkanjyaCw.CommandText = cq
CDBkanjyaCw.ExecuteNonQuery()
CDBkanjyaCw.Dispose()
Db.Close()
FETCH(SELECT)条件が他にあるならばいいのですが、他にSELECTするキーもなく全件取得なSELECTして、その取得した全件をわざわざ1件ずつ患者IDをキーに更新条件つけて1件ずつ更新しなくても、良いのでは?
ここに質問する際、まずい箇所を削除した関係でソースを公開されたのであれば、良いのですが、ちょっと気になったもので・・・
回答になってなくてすいませんが、1つずつ整理して上記をお試しください。
お礼
色々ありがとうございました。 大変参考になりました。 分離レベルの運用でいきたいと思います。