ADO.NETを使用してSQL Server上のストアド プロシージャを実行し、結果をDataGridViewに表示するサンプルです。
SQL Server、ストアド プロシージャ
引数もなく、SELECT結果を返すだけのストアド プロシージャです。-
sql
CREATE PROCEDURE [dbo].[StoredProcedure_SelectSample] AS BEGIN SET NOCOUNT ON; SELECT * FROM sys.objects END
クライアント、Windowsフォームアプリケーション
SELECT結果をSqlDataAdapterのFillメソッドでDataSetに格納します。 DataSetのTablesは配列になっているため、ストアドがSELECT結果を複数返す場合にも対応可能です。-
C#
private void Form1_Load(object sender, EventArgs e) { // 接続文字列。環境に合わせて修正してください String connectionString = "SERVER=LOCALHOST\\SQLEXPRESS;UID=sa2;PWD=sa2;DATABASE=Web"; using (SqlConnection connection = new SqlConnection(connectionString)) { // コネクションを開く connection.Open(); // コマンド作成 SqlCommand command = connection.CreateCommand(); // ストアド プロシージャを指定 command.CommandType = CommandType.StoredProcedure; // ストアド プロシージャ名を指定 command.CommandText = "StoredProcedure_SelectSample"; // ストアド プロシージャを実行し、SELECT結果をdataSetへ格納 DataSet dataSet = new DataSet(); using (SqlDataAdapter adapter = new SqlDataAdapter(command)) { adapter.Fill(dataSet); } // 結果表示 this.dataGridView1.DataSource = dataSet.Tables[0]; } }
-
VB.NET
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' 接続文字列。環境に合わせて修正してください Dim connectionString As String = "SERVER=LOCALHOST\SQLEXPRESS;UID=sa2;PWD=sa2;DATABASE=Web" Using connection As New SqlConnection(connectionString) ' コネクションを開く connection.Open() ' コマンド作成 Dim command As SqlCommand = connection.CreateCommand ' ストアド プロシージャを指定 command.CommandType = CommandType.StoredProcedure ' ストアド プロシージャ名を指定 command.CommandText = "StoredProcedure_SelectSample" ' ストアド プロシージャを実行し、SELECT結果をdataSetへ格納 Dim dataSet As DataSet = New DataSet() Using adapter As SqlDataAdapter = New SqlDataAdapter(command) adapter.Fill(dataSet) End Using ' 結果表示 Me.DataGridView1.DataSource = dataSet.Tables(0) End Using End Sub
サンプルコードのダウンロード
サンプルコードの実行には Microsoft Visual Studio 2008 以上のバージョンが必要です。 2008以外のバージョンではプロジェクトを開いた際にファイルの変換が必要な場合があります。その場合は変換後に実行してください。検証環境
- Microsoft Visual Studio 2008 Version 9.0.30729.4462 QFE Edition: Professional
- Microsoft .NET Framework Version 3.5 SP1
- Microsoft SQL Server Express Edition (64-bit) プラットフォーム:NT x64 バージョン:10.0.2531.0
- Microsoft Windows 7 Professional Service Pack 1 (Microsoft Windows NT 6.1 (7601))