「C Sharpとデータベース - ストアドプロシージャ」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「== 概要 == C#からSQL Serverに設定したストアドプロシージャを実行する時のサンプルコードを記載する。 <br><br> == サンプルコー…」) |
細 (文字列「<source」を「<syntaxhighlight」に置換) |
||
| (同じ利用者による、間の3版が非表示) | |||
| 1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
C#からSQL Serverに設定したストアドプロシージャを実行する時のサンプルコードを記載する。 | C#からSQL Serverに設定したストアドプロシージャを実行する時のサンプルコードを記載する。<br> | ||
<br><br> | <br><br> | ||
== サンプルコード == | == サンプルコード == | ||
===== SQL Server ストアド プロシージャ ===== | ===== SQL Server ストアド プロシージャ ===== | ||
使用するストアドプロシージャは、引数無しのSELECT文の結果を返すだけのストアドプロシージャである。 | 使用するストアドプロシージャは、引数無しのSELECT文の結果を返すだけのストアドプロシージャである。<br> | ||
< | <syntaxhighlight lang="sql"> | ||
CREATE PROCEDURE [dbo].[StoredProcedure_Sample] | CREATE PROCEDURE [dbo].[StoredProcedure_Sample] | ||
AS | AS | ||
| 14行目: | 14行目: | ||
SELECT * FROM sys.objects | SELECT * FROM sys.objects | ||
END | END | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
===== C# サンプルコード ===== | ===== C# サンプルコード ===== | ||
SELECT文の結果をSqlDataAdapterのFillメソッドでDataSetに格納する。 | SELECT文の結果をSqlDataAdapterのFillメソッドでDataSetに格納する。<br> | ||
DataSetのTablesは配列になっているため、ストアドプロシージャがSELECT文の結果を複数返す場合にも対応可能である。 | DataSetのTablesは配列になっているため、ストアドプロシージャがSELECT文の結果を複数返す場合にも対応可能である。<br> | ||
< | <syntaxhighlight lang="c#"> | ||
using System; | using System; | ||
using System.Configuration; | using System.Configuration; | ||
| 70行目: | 70行目: | ||
} | } | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:C_Sharp]] | [[カテゴリ:C_Sharp]] | ||
2021年11月22日 (月) 15:42時点における最新版
概要
C#からSQL Serverに設定したストアドプロシージャを実行する時のサンプルコードを記載する。
サンプルコード
SQL Server ストアド プロシージャ
使用するストアドプロシージャは、引数無しのSELECT文の結果を返すだけのストアドプロシージャである。
CREATE PROCEDURE [dbo].[StoredProcedure_Sample]
AS
BEGIN
SET NOCOUNT ON;
SELECT * FROM sys.objects
END
C# サンプルコード
SELECT文の結果をSqlDataAdapterのFillメソッドでDataSetに格納する。
DataSetのTablesは配列になっているため、ストアドプロシージャがSELECT文の結果を複数返す場合にも対応可能である。
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
public void GetData()
{
var table = new DataTable();
// 接続文字列の取得(データソースの直接指定)
var connectionString = @"SERVER=LOCALHOST\SQLEXPRESS;UID=hoge;PWD=piyo;DATABASE=D_Sample";
// 接続文字列の取得(設定ファイル(xml形式)から取得)
var connectionString = ConfigurationManager.ConnectionStrings["sqlsvr"].ConnectionString;
using (var connection = new SqlConnection(connectionString))
using (var command = connection.CreateCommand())
{
try
{
// データベースの接続開始
connection.Open();
// ストアドプロシージャの指定
command.CommandType = CommandType.StoredProcedure;
// ストアドプロシージャ名の指定
command.CommandText = "StoredProcedure_Sample";
// ストアドプロシージャを実行して結果をdataSetへ格納
var dataSet = new DataSet();
using (var adapter = new SqlDataAdapter(command))
{
adapter.Fill(dataSet);
}
// 結果を表示
this.dataGridView1.DataSource = dataSet.Tables[0];
}
catch (Exception exception)
{
Console.WriteLine(exception.Message);
throw;
}
finally
{ // データベースの接続終了
connection.Close();
}
}
}