Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
SQLデータベースへ重複読み込み?
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=8993#CommentId10843
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
るきお
 (社会人)
投稿日時
2009/2/27 21:20:59
提示されたコードだけからははっきりとはいえませんが、
恐らくDataReaderを開いた状態で、同じ接続を使ってExecuteNonQueryを実行しているのが原因と思います。
DataReaderは接続を占有しますので、DataReaderを開いているときにその接続を使ってExecuteNonQueryなどの別処理を行うことはできません。
回避策としてこの「接続」とはSqlConnectionクラスのことですので、同じデータベースに対して2つのSqlConnectionを作成すれば片方ではDataReaderを実行し、他方ではExecuteNonQueryを発行することが可能になります。
これはプログラム的には大して難しくはないのですが、トランザクションの排他制御などデータベースの読み書きに関する通常の同時実行制御について気をつけることが増えてしまうので、ある程度重要な業務で使用する場合は十分に設計・テストを行ってください。
もう1つの回避策としてはDataReaderを使うのを止めるということが考えられます。
たとえば、代わりにDataTableを使用することはできませんか?