現在、ASP.NET(言語:VB.NET)にて、
データ参照、更新系のWebアプリケーションを自学しているものですが、
DAC(Data Access Componet)を利用してSQL Serverのデータを取得、更新する際、
コネクションの閉じ方が分からず困っています。
DACを使用しない場合は、
下記のようにSQLConnectionをUsing句で明示的に括り、
Closeさせることができますが、
DACを使用した場合はTableAdapterからSQLConnectionを取得できず、
同様の実装方法を採れません。
------------------
Dim mySelectQuery As String = "SELECT * FROM Categories ORDER BY CategoryID"
Dim myConnectString As String = "Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=mySQLServer"
Dim myCommand As New SqlCommand(mySelectQuery)
Using conn AS SqlConnection = New SqlConnection(myConnectString)
myCommand.Connection =conn
myCommand.CommandTimeout = 15
myCommand.CommandType = CommandType.Text
myCommand.ExecuteNonQuery()
End Using
------------------
一方、DACを使用した場合は下記のように実装しております。
------------------
Dim ta As New SystemError_OriginalTableAdapters.OriginalTableAdapter
Dim dt As New SystemError_OriginalDataTable
ta.FillBy(dt, id) ' テーブルアダプターのFillメソッドを呼び出すのみで、Closeしているかどうかがわからない。
------------------
DACでは、Fillメソッド実行後に必ずSQLConnectionがCloseされることが
保証されているなら問題は無いのですが、
そうでない場合、テーブルアダプターからSQLConnectionを取得して、
明示的にCloseさせてやりたいと思っています。
DACを使用した場合のSQLConnectionの取得方法、
もしくはSQLConnectionのCloseの方法についてご教授願えないでしょうか?
以上、宜しくお願いします。
No.1ベストアンサー
- 回答日時:
明示的にOpen/Closeしないのがお勧め
----
DbDataAdapter.Fill メソッド
http://msdn.microsoft.com/ja-jp/library/905keexk …
>Fill を呼び出す前に接続が閉じていた場合は、接続が開かれ、データを取得した後で再び閉じられます。
----
ADO.NET パフォーマンスの向上
http://msdn.microsoft.com/ja-jp/library/ms998569 …
> 1 つの Fill 処理または Update 処理を実行する場合、Fill メソッドを呼び出す前に接続を開かないでください。
> DataAdapter が自動的に接続を開閉するためです。
> SqlDataAdapter は自動的に接続を開き、選択されたコマンドを実行し、終了したら接続を閉じます。
> これにより、接続が開いている時間を最小限に抑えることができます。
回答ありがとうございます。
DACにコネクションの開閉を任せることとします。
該当ページの内容を理解して勉強を進めようと思います。
重ねて感謝いたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
javascriptからjavaを呼び出したい
-
Labelコントロールに数字を代入...
-
【sendkeysメソッドが動かずに...
-
final修飾子を使っているのに、...
-
エクセルのマクロでプリンタを...
-
DataGridViewでセルクリックイ...
-
JSPで<SELECT>の中にDBから持っ...
-
エクセルVBAにおけるON TIMEメ...
-
ジェネリックスに関して
-
ヘルパーメソッドとはなんですか?
-
Refreshメソッドの使い方
-
Range クラスのAutoFitプロパテ...
-
エクセルVBAのInputBoxメソ...
-
VBAでSaveAs使用し、指定してい...
-
worksheets & rows メソッドは...
-
ListViewにて行追加
-
VBPをダブルクリックするとたま...
-
ODBCでMoveNextがうまく動作し...
-
drawStringで文字間隔の調整
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
final修飾子を使っているのに、...
-
JSPで<SELECT>の中にDBから持っ...
-
Labelコントロールに数字を代入...
-
エクセルVBAにおけるON TIMEメ...
-
javascriptからjavaを呼び出したい
-
DataGridViewでセルクリックイ...
-
VBPをダブルクリックするとたま...
-
onClickで関数呼出し後に、結果...
-
コマンドプロンプト実行後に画...
-
配列のメソッド
-
日本の教育って時間が無い中で...
-
Refreshメソッドの使い方
-
mainメソッドのthrows節で設定...
-
【sendkeysメソッドが動かずに...
-
C# 演算 最大値 最小値 表現の仕方
-
VBA コピーが出来ません…!
-
Application.Wait の参照設定
-
ウィンドウを最前面にできません
-
for文(拡張)内の変数(ローカ...
おすすめ情報