Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
VB2010でADO.NET(SqlClient使用)での考え方
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=10908#CommentId23864
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
acwg
 (社会人)
投稿日時
2012/6/14 19:21:26
お世話になります。
今、VB2010 + SQL Server2008 R2 Express にて開発しているのですが、根本的な部分で確認させて
頂きたく、投稿させて頂きます。
今までVB6で開発してまして、今回がVB2010はお初なのですが、今までのプログラムの作りは、
1.プログラム起動時にDBへ接続(ADOです。)
2.各プログラムの処理では、Connectionは、使い回しで、RecordSetをオープンや、Excute
3.プログラムを終了する時に、接続解除
とやっていたので、
今回VB2010で作る際も、その流れで
1.プログラム起動時にDBへ接続(SqlClient使用)
2.各処理で、SqlCommandやSqlDataReaderを使用
3.プログラムを終了する時に、接続解除
としたのですが、SqlDataReaderを開いている最中に、サブルーチンをコールして、そのサブルーチン
の中で、SqlCommandを使用(ExecuteScalar())したら、
例外
この Command に関連付けられている DataReader が既に開かれています。このコマンドを最初に閉じる必要があります。
が出まして、いろいろネットで調べた所、1接続で同時に複数のSqlCommand、SqlDataReaderは開けないとの記事を見かけました。
ちなみに、自分のプログラムは、ConnectionのみPublicで、SqlCommandやSqlDataReaderは、各処理のローカル宣言なのですが、動きを見る限り、この複数使用NG制限にかかっているように見えます。
前置きが長くなりましたが、VB2010のSqlClientを使用したコーディングの場合、都度
1.DBに接続
2.SqlCommandやSqlDataReaderを開く
3.2で開いたものを閉じる
3.DB接続の解除
と、DBアクセスごとに、DBの接続~解除をするのがセオリーなのでしょうか?
みなさま、ご教授の程、宜しくお願い致します。