Imports System.Data Imports System.Data.SqlClient Public NotInheritable Class SampleDataUtil Private Sub New() End Sub 'このメソッドは Northwind サンプル データベースがインストールされていることを前提とします 'このメソッドは Northwind データベースから顧客情報のフラット DataSet を返します Public Shared Function GetCustomers(ByVal serverAddress As String) As DataSet Dim connectionString As String = String.Format("Data Source={0}; Initial Catalog=Northwind; Integrated Security=True", serverAddress) Dim customerDataSet As New DataSet("Northwind") 'SqlConnection を作成します。 Using conn As New SqlConnection(connectionString) 'Customers テーブルですべてのフィールドを取得する select コマンドを作成します。 Dim customerSelectCommand As New SqlCommand("SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax FROM Customers", conn) '上記の作成した Command オブジェクトを使用してデータ アダプタを作成します。 Dim customerAdapter As New SqlDataAdapter(customerSelectCommand) Try 'DataSet を埋めます。 customerAdapter.Fill(customerDataSet, "Customers") Catch e As 例外 '問題があり、例外メッセージをデバッグ出力ウィンドウに書き込む場合、サイレントで失敗します。 System.Diagnostics.Debug.WriteLine(e.Message) End Try End Using Return customerDataSet End Function 'このメソッドは Northwind サンプル データベースがインストールされていることを前提とします。 'このメソッドは Northwind データベースから顧客/注文情報の階層的な DataSet を返します。 Public Shared Function GetCustomersOrders(ByVal serverAddress As String) As DataSet Dim connectionString As String = String.Format("Data Source={0}; Initial Catalog=Northwind; Integrated Security=True", serverAddress) '顧客データで DataSet を初期化します。 Dim customerOrderDataSet As DataSet = GetCustomers(serverAddress) Using conn As New SqlConnection(connectionString) Dim orderSelectCommand As New SqlCommand("SELECT OrderID, CustomerID, EmployeeID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry FROM Orders", conn) Dim orderAdapter As New SqlDataAdapter(orderSelectCommand) Try orderAdapter.Fill(customerOrderDataSet, "Orders") 'Orders DataTable を埋めた後、Customers DataTable と Orders DataTable の間に DataRelation を追加します。 customerOrderDataSet.Relations.Add("Customer_Orders", customerOrderDataSet.Tables("Customers").Columns("CustomerID"), customerOrderDataSet.Tables("Orders").Columns("CustomerID")) Catch e As Exception System.Diagnostics.Debug.WriteLine(e.Message) End Try End Using Return customerOrderDataSet End Function 'このメソッドは Northwind サンプル データベースがインストールされていることを前提とします 'このメソッドは在庫の上位 10 製品を返します Public Shared Function GetTop10ProductsInStock(ByVal serverAddress As String) As DataSet Dim connectionString As String = String.Format("Data Source={0}; Initial Catalog=Northwind; Integrated Security=True", serverAddress) Dim top10ProductsDataSet As New DataSet("Northwind") Using conn As New SqlConnection(connectionString) Dim productSelectCommand As New SqlCommand("SELECT TOP 10 UnitsInStock, ProductID FROM Products ORDER BY UnitsInStock DESC", conn) Dim productAdapter As New SqlDataAdapter(productSelectCommand) Try productAdapter.Fill(top10ProductsDataSet, "Products") Catch e As Exception System.Diagnostics.Debug.WriteLine(e.Message) End Try End Using Return top10ProductsDataSet End Function End Class