これ何て呼びますか

現在、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の方法についてご教授願えないでしょうか?

以上、宜しくお願いします。

A 回答 (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 は自動的に接続を開き、選択されたコマンドを実行し、終了したら接続を閉じます。
> これにより、接続が開いている時間を最小限に抑えることができます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

DACにコネクションの開閉を任せることとします。
該当ページの内容を理解して勉強を進めようと思います。

重ねて感謝いたします。

お礼日時:2010/05/29 13:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!