.NET開発者のためのブログメディア
【C#でADO.NETを動かす】DataSetとDataTableの操作方法
公開日時: 更新日時:

C#において、データベースなどから取得したデータをメモリ領域へ格納するのに必要なのがDataSetです。DataSetではテーブルを複数保持することができます。この複数保持できるテーブルひとつひとつがDataTableということになります。ここではDataTableの活用方法をメインに紹介します。
- SE
- なんだか「Data」って単語がいっぱい出てきてややこしいですよね……
- PL
- そうですね。DataSetの中にDataTableがあり、DataTableの中にDataRowとDataColumnがあります。イメージ的にはエクセルに例えるとわかりやすいかもしれません。DataSetがエクセルのブックにあたります。DataTableがその中にある各シートで、DataRowがシートの行、DataColumnがシートの列にそれぞれあたります。まずはこのイメージだけでもバッチリ掴むことでコーディングに入りやすいかもしれません。
目次
DataSetとDataTableを作成する方法
エクセルでは、初期状態でシートが準備されていますが、DataSetでは シートにあたるDataTableは最初から準備されていないので、まずはDataTableを準備します。また、DataTableを作成後、列と行にあたるDataRowとDataColumnもあわせて作成する必要があります。ここまで準備できてはじめてSQL Serverなどから取得したデータをDataTableに設定することができます。
- DataSetを作成(エクセルのブックのイメージ)
1DataSet ds = new DataSet();
- DataTableを作成(エクセルのシートのイメージ)
12DataTable dt = new DataTable();ds.Tables.Add(dt);
すると、以下のようにDataTableが作成されます。
- DataColumnを作成(エクセルの列のイメージ)
12345dt.Columns.Add("A");dt.Columns.Add("B");dt.Columns.Add("C");dt.Columns.Add("D");dt.Columns.Add("E");
すると、以下のようにDataColumnが作成されます。
- DataRowを作成(エクセルの行のイメージ)
123456// 6行追加します。for (int i = 0; i < 6; i++){DataRow row = dt.NewRow();dt.Rows.Add(row);}
すると、以下のようにDataRowが作成されます。
DataTableにデータを追加する方法
DataTableにデータを追加するサンプルソースです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.TableName = "Table1";
//まずは 列を定義します。今回は3列追加します。
dt.Columns.Add("商品番号");
dt.Columns.Add("商品名");
dt.Columns.Add("価格");
// 列まで作成できたらDataTable をDataSetに追加します。
ds.Tables.Add(dt);
// ループ処理にあたるfor文を活用し、行にデータを追加します。
for (int i = 0; i < 3; i++)
{
DataRow row = ds.Tables[0].NewRow();
if (i == 0){
row[0] = "001";
row[1] = "野菜";
row[2] = "100";
};
if (i == 1){
row[0] = "002";
row[1] = "果物";
row[2] = "200";
};
if (i == 2){
row[0] = "003";
row[1] = "お菓子";
row[2] = "300";
};
ds.Tables[0].Rows.Add(row);
}
|
実行結果は以下のような表となります。
[Table1]
商品番号 | 商品名 | 価格 |
001 | 野菜 | 100 |
002 | 果物 | 200 |
003 | お菓子 | 300 |
- SE
- エクセルにあてはめるとわかりやすいですね。まずはイメージを掴むことからチャレンジしてみます。
- PL
- そうですね。イメージを掴むことってとても大事ですよ。データをテーブルで保持して、その保持されているデータをループで回しながら編集するというロジックは、プログラミング言語が変わっても必ずといっていいほど出てきます。現場ですぐにコーディングできるように、今のうちから考え方だけでも自分のものにしておきましょう。
DataSetだけではデータは格納できません
DataSetはデータを格納するための入れ物ですが、DataSetだけではデータを格納することはできません。その中には必ずDataTableが必要ですし、DataColumnもDataRowもそれぞれ必要です。これら4つをワンセットとして覚えておきましょう。
Search キーワード検索
Popular 人気の記事
-
【VB.NET入門】DataGridViewの使い方まとめ
公開: 更新:
reccomended おすすめ記事
-
【.NETが統合】.NET 5の概要と今後のリリース予定
公開: 更新:
Categories 連載一覧
Tags タグ一覧
Jobs 新着案件
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅)