この記事では、Visual Basic .NET と共に SQL Server .NET データ プロバイダーを使用して Microsoft SQL Server データベースを開く方法について説明します。 ADO.NET を使用して、SQL Server .NET データ プロバイダーを使用して SQL Server データベースを開くことができます。 ADO.NET は、データ処理に必要なすべてのクラスを収集します。
System.Data.SqlClient名前空間は、SQL Server データ ソースにプログラムでアクセスするために使用されるクラスのコレクションを記述します。
この記事では、プログラムと Visual Studio .NET サーバー エクスプローラーの両方を使用して接続を設定します。 この記事のコード サンプルでは、 SqlConnection、 SqlCommand、および SqlDataReader ADO.NET オブジェクトを使用します。
適用対象: Visual Basic .NET
元の KB 番号: 308656
[前提条件]
- Microsoft SQL Server
- Visual Basic .NET
Note
SQL Server と Visual Basic .NET を同じコンピューターにインストールして実行する必要があります。 さらに、ユーザーは Windows 統合セキュリティを使用して SQL Server に接続できる必要があります。
この記事では、次のトピックについて理解していることを前提としています。
- ADO.NET の概念
- SQL Server の概念と Transact-SQL (T-SQL) 構文
- Northwind サンプル データベース
Visual Basic .NET Windows アプリケーションを作成する
Visual Studio .NET で、Visual Basic Windows アプリケーション プロジェクトを作成し、 SQLDataAccess という名前を付けます。
Form1 を開きます。
Form1.vbの最初の行で、次のように ADO.NET 名前空間への参照を追加します。
Imports System.Data.SqlClientSQL Server サービスがコンピューターで実行されていることを確認するには、[ スタート] を選択し、[ プログラム] をポイントし、Microsoft SQL Server をポイントして、[ SQL Server サービス マネージャー] を選択します。
Server プロパティをコンピューターの名前に設定し、Services プロパティを MSSQLServer に設定します。
サービスが実行されていない場合は、[開始] を選択 します。
SQL Server Service Manager ダイアログ ボックスを閉じます。
ADO.NET オブジェクトを作成する
Form1 クラスを次のように変更します。
Public Class Form1
Inherits System.Windows.Forms.Form
'Create ADO.NET objects.
Private myConn As SqlConnection
Private myCmd As SqlCommand
Private myReader As SqlDataReader
Private results As String
SqlConnection オブジェクトはデータベース接続を確立し、SqlCommand オブジェクトはデータベースに対してクエリを実行し、SqlDataReader オブジェクトはクエリの結果を取得します。
SqlConnection オブジェクトを使用して SQL Server 接続を開く
SqlConnectionオブジェクトの接続文字列を設定するには、Form1_Loadイベント プロシージャに次のコードを追加します。'Create a Connection object. myConn = New SqlConnection("Initial Catalog=Northwind;" & _ "Data Source=localhost;Integrated Security=SSPI;")SQL クエリを含む
Commandオブジェクトを設定するには、Form1_Loadイベント プロシージャに次のコードを追加します。'Create a Command object. myCmd = myConn.CreateCommand myCmd.CommandText = "SELECT FirstName, LastName FROM Employees" 'Open the connection. myConn.Open()
SqlConnection では、Windows ログオンの詳細を使用して、コンピューター上の Northwind データベースに接続します。
SqlDataReader オブジェクトを使用して SQL Server からデータを取得する
Form1_Loadイベント プロシージャに次のコードを追加します。myReader = myCmd.ExecuteReader()
myCmd.ExecuteReader メソッドを実行すると、SqlCommandEmployees テーブルから 2 つのフィールドを取得し、SqlDataReader オブジェクトを作成します。
クエリ結果を表示するには、
Form1_Loadイベント プロシージャに次のコードを追加します。'Concatenate the query result into a string. Do While myReader.Read() results = results & myReader.GetString(0) & vbTab & _ myReader.GetString(1) & vbLf Loop 'Display results. MsgBox(results)
myReader.Read メソッドは、読み取るレコードが他に存在するかどうかを示すブール値を返します。 SQL クエリの結果がメッセージ ボックスに表示されます。
SqlDataReaderオブジェクトとSqlConnectionオブジェクトを閉じるには、Form1_Loadイベント プロシージャに次のコードを追加します。'Close the reader and the database connection. myReader.Close() myConn.Close()プロジェクトを保存して実行します。
サーバー エクスプローラーでデータベースを表示する
- [ 表示 ] メニューの [ サーバー エクスプローラー] を選択します。
- [ データ接続] を右クリックし、[ 接続の追加] を選択します。
- [データ リンクのプロパティ] ダイアログ ボックスで、[サーバー名の選択または入力] ボックスで localhost を選択します。
- サーバーにログオンするには、 Windows NT 統合セキュリティを選択します。
- サーバー上のデータベースを選択し、一覧から Northwind データベースを選択します。
- 接続を検証するには、[ テスト接続] を選択し、[ OK] を選択します。
- サーバー エクスプローラーで、[ データ接続 ] ツリーを展開して、
Employeesテーブル ノードが展開されるようにします。 個々のフィールドのプロパティは、 Properties ウィンドウに表示されます。
サーバー エクスプローラーを使用して SQL Server 接続を開く
デザイン ビューで Form1 を表示します。
サーバー エクスプローラーの
Employeesテーブルから、 FirstName データベース フィールドと LastName データベース フィールドを Form1 にドラッグ アンド ドロップします。 このアクションにより、フォームにSqlConnectionオブジェクトとSqlDataAdapterオブジェクトが作成されます。[ 表示 ] メニューの [ ツールボックス] を選択します。
[ データ ] タブで、
DataSetオブジェクト (DataSet1) をフォームにドラッグ アンド ドロップします。[ データセットの追加 ] ダイアログ ボックスで、[ 型指定されていないデータセット] を選択し、[ OK] を選択します。
Form1_Loadイベント プロシージャで、次のように、DataReaderオブジェクトとConnectionオブジェクトを閉じてプロシージャを終了する前にコード行を挿入します。SqlDataAdapter1.Fill(DataSet1, "Employees") myReader.Close() myConn.Close()ツールボックスの [ ウィンドウ フォーム ] タブで、DataGrid コントロールを Form1 にドラッグ アンド ドロップします。
Form1_Loadイベント プロシージャで、myReader.close()行の前に次のコードを追加して、DataGrid を先ほど作成したDataSetオブジェクトにバインドします。DataGrid1.SetDataBinding(DataSet1, "Employees")プロジェクトを保存して実行します。