達成目標: 私は3つの異なる場所から3つの異なるSQLクエリから3つの異なるデータテーブルを1つの単一データセットにしたいと思います。Vb.netで3つの異なるアダプタを使用してデータセットを入力するにはどうすればよいですか?
私が持っている:
Private Function getDataSet()
Dim ad1,ad2,ad3 As Object
ad1 = New Data.OleDb.OleDbDataAdapter(query1, conStr1)
ad2 = New Data.SqlClient.SqlDataAdapter(query2, conStr2)
ad3 = New Data.SqlClient.SqlDataAdapter(query3, conStr3)
Dim dataSet As New Data.DataSet
// I want to fill dataSet with the 3 adapters !
// ad1.Fill(dataSet) : ad2.Fill(dataSet) : ad3.Fill(dataSet)
// Will this work ?
ad1.Dispose() : ad2.Dispose() : ad3.Dispose() // What does Dispose() method do ?
Return dataSet
End Function
Dim ds = getDataSet()
data1 = ds.Tables(0)
data2 = ds.Tables(1)
data3 = ds.Tables(2)
私は上記のタスクの最良の実装を使用したい...
- を助けてください。
など(上記のコードサンプルを参照してください)using-statementを好むだろう全ての3が同じ 'conStr'を持っているならば、1接続? –
@ Yuga。お役に立てて嬉しいです。しかし、すべての人に同じ接続を使用できるということを誤解しないでください。異なる方法で/ open/closeを作成しても、Connection-Poolは同じ接続(接続文字列が同じ場合)を使用するためです。だからあなたは1つの "グローバル"接続を持つべきではなく、これを使うべきです。それを必要な場所に作成して使用すると、ADO.NET Connection-Poolが残りの作業を行います。 –