Visual Basic .NET で SQL Server .NET データ プロバイダを使用して SQL Server データベースを開く方法


概要


この資料では、ADO.NET を使用して、SQL Server .NET データ プロバイダで SQL Server データベースを開く方法について説明します。 ADO.NET には、データ処理に必要なすべてのクラスが集められています。 System.Data.SqlClient 名前空間は、SQL Server データ ソースにプログラムからアクセスするために使用されるクラスの集合を表しています。 ADO の各クラスには、OLE DB のサポートを提供する System.Data.OleDb 名前空間を通じてアクセスできます。

この資料では、プログラムと Visual Studio .NET サーバー エクスプローラの両方を使用して接続の設定を行います。 この資料のコード サンプルでは、ADO.NET の SqlConnectionSqlCommandSqlDataReader の各オブジェクトを使用します。

必要条件

必要なハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、および Service Pack は次のとおりです。
  • Microsoft SQL Server
  • Visual Basic .NET
注: SQL Server と Visual Basic .NET は、同じコンピュータにインストールして実行する必要があります。 また、ユーザーが Windows の統合セキュリティを使用して SQL Server に接続できるようにすることが求められます。

この資料は、次のトピックについて詳しい知識のあるユーザーを対象としています。
  • ADO.NET の概念
  • SQL Server の概念と Transact-SQL (T-SQL) の構文
  • Northwind サンプル データベース

Visual Basic .NET Windows アプリケーションを作成する

  1. Visual Studio .NET を起動し、SQLDataAccess という名前で Visual Basic の Windows アプリケーション プロジェクトを新規作成します。
  2. Form1 が表示されます。 Form1.vb の最初の行で、次のように ADO.NET 名前空間への参照を追加します。
    Imports System.Data.SqlClient
  3. [スタート] メニューの [プログラム]、[Microsoft SQL Server]、[サービス マネージャ] を順にクリックし、コンピュータ上で SQL Server サービスが実行中であることを確認します。
  4. [サーバー] にコンピュータの名前を、[サービス] に [SQL Server] をそれぞれ設定します。
  5. サービスが実行中でない場合は、[開始/再開] をクリックします。
  6. [SQL Server サービス マネージャ] ダイアログ ボックスを閉じます。

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 接続を開く

  1. SqlConnection オブジェクトの接続文字列を設定するため、次のコードを Form1_Loadイベント プロシージャに追加します。
           'Create a Connection object.
    myConn = New SqlConnection("Initial Catalog=Northwind;" & _
    "Data Source=localhost;Integrated Security=SSPI;")

  2. 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 からデータを取得する

  1. Form1_Load イベント プロシージャに、次のコードを追加します。
    myReader = myCmd.ExecuteReader()
  2. myCmd.ExecuteReader メソッドが実行されると、SqlCommand によって Employees テーブルから 2 つのフィールドが取得され、SqlDataReader オブジェクトが作成されます。
  3. クエリ結果を表示するため、次のコードを
    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 クエリの結果がメッセージ ボックスに表示されます。
  4. SqlDataReaderSqlConnection の各オブジェクトを閉じるため、次のコードを Form1_Load イベント プロシージャに追加します。
    'Close the reader and the database connection.
    myReader.Close()
    myConn.Close()
  5. プロジェクトを保存して実行します。

サーバー エクスプローラでデータベースを表示する

  1. [表示] メニューの [サーバー エクスプローラ] をクリックします。
  2. [データ接続] を右クリックし、[接続の追加] をクリックします。
  3. [データリンク プロパティ] ダイアログ ボックスで、[サーバー名を選択または入力します] ボックスの [localhost] をクリックします。
  4. サーバーへのログオン方法として、[Windows NT の統合セキュリティを使用する] をクリックします。
  5. [サーバー上のデータベースを選択する] をクリックし、一覧の [Northwind] をクリックします。
  6. [接続のテスト] をクリックして接続できることを確認し、[OK] をクリックします。
  7. サーバー エクスプローラで [データ接続] ツリーを順に展開し、テーブルの [Employees] ノードを展開します。 各フィールドのプロパティが [プロパティ] ウィンドウに表示されます。

サーバー エクスプローラを使用して SQL Server 接続を開く

  1. デザイン ビューで Form1 を表示します。
  2. サーバー エクスプローラの [Employees] テーブルからデータベースのフィールド [FirstName] と [Last Name] をドラッグし、Form1 の上にドロップします。 SqlConnectionSqlDataAdapter の各オブジェクトがフォーム上に作成されます。
  3. [表示] メニューの [ツールボックス] をクリックします。
  4. [データ] タブで、[DataSet] オブジェクト (DataSet1) をドラッグし、フォームの上にドロップします。
  5. [データセットの追加] ダイアログ ボックスで、[型指定のないデータセット] をクリックし、[OK] をクリックします。
  6. Form1_Load イベント プロシージャで、DataReaderConnection の各オブジェクトを閉じる前の位置にコードを 1 行追加します。 プロシージャの最後の部分は次のようになります。
    SqlDataAdapter1.Fill(DataSet1, "Employees")
    myReader.Close()
    myConn.Close()
  7. ツールボックスの [Windows フォーム] タブで、[DataGrid] コントロールをドラッグし、Form1 の上にドロップします。
  8. 前述の手順で作成したデータセットにこの DataGrid を連結するため、Form1_Load イベント プロシージャの "myReader.close()" の前に、次のコードを追加します。
    DataGrid1.SetDataBinding(DataSet1, "Employees")
  9. プロジェクトを保存して実行します。

関連情報


ADO.NET の使用方法の関連情報については、Visual Studio .NET ドキュメントの「Visual Basic」の「Data」を参照してください。