【C#】Datasetの使い方

データソースへデータを追加した後の使い方について何となく知っている程度だったのでまとめました。

基本的な使い方

基本的にはFillメソッドかGetDataメソッドが用意されています。
それぞれの使い方については下記の通りです。

// 結果格納用のデータテーブルを作成
TestDataSet.ProfileTableDataTable prDataTable = new TestDataSet.ProfileTableDataTable();
// データアダプタを作成
TestDataSetTableAdapters.ProfileTableTableAdapter pttadapter = new TestDataSetTableAdapters.ProfileTableTableAdapter();

// どちらも同じ結果を返す
pttadapter.Fill(prDataTable);
// prDataTable = pttadapter.GetData();

// データグリッドビューに結果を表示する
dataGridView.DataSource = prDataTable;

検索条件を追加する

Fillメソッド、GetDataメソッドに対して検索項目を追加する方法については、構成ウィザードを利用することで変更が可能です。

データセットを開き、下のアダプタを右クリックして「構成」をクリックすれば構成ウィザードを開けます。

今回はidを検索条件として追加する為にSQL文の末尾に対して下記のコードを追加します。

WHERE  id = @id

するとデータセットのアダプタの部分が更新され、(@id)となっています。

更新後にソースを変更し、7,8行目を下記のように引数に対してidを指定します。

pttadapter.Fill(prDataTable, 1);
// prDataTable = pttadapter.GetData(1);

実行結果については省きますが、idが1のデータを取得できます。

クエリを追加する(アダプタ)

アダプタ内にクエリを追加する方法とストアドプロシージャにクエリを追加する方法がありますが、
まずはアダプタにクエリを追加する方法について説明します。

方法としては簡単で追加したいアダプタ上で右クリックして追加を選択し、SQLステートメントを使用を選択します。

次にSQL文の種類を選択して完了を押すだけです。
※メソッド名などを指定する場合は次へを押下してください。

クエリを追加する(ストアドプロシージャ)

特にアダプタへの追加時と変わらず、新しいストアドプロシージャの作成、または既存のストアドプロシージャを使用を選択し、
クエリを作成するだけになります。

ストアドプロシージャも自動で作成してくれており、下記のようにストアドプロシージャを作成してくれています。

USE [TestDatabase]
GO
/****** Object:  StoredProcedure [dbo].[InsertQuery_Stored]    Script Date: 2017/02/26 20:22:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[InsertQuery_Stored]
(
	@id int,
	@name nchar(50),
	@age int
)
AS
	SET NOCOUNT OFF;
INSERT INTO [dbo].[ProfileTable] ([id], [name], [age]) VALUES (@id, @name, @age)

ざっくりとしか触っていなかったから全然わからなかった…

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です