【C#】DataTable ~ 基礎知識編 ~

■ DataSet / DataTable / TableAdapter

DataSetクラス

 データベースに対応
データセットとは
データを一時的にローカルのメモリ内に格納できるデータ テーブルを含むオブジェクト

【利点】
 いちいちデータベースにアクセスする必要がないので、パフォーマンス向上になる

DataTableクラス

 データベースのテーブルに対応

DataColumnクラス

 データベースのテーブルの「列」に対応

DataRowクラス

 データベースのテーブルの「行」に対応

TableAdapter

 データセットとデータベースの橋渡し役
参考資料
http://www.atmarkit.co.jp/fdotnet/vblab/vsdbprog_03/vsdbprog_03_01.html

全体の構成

http://www.atmarkit.co.jp/fdotnet/basics/adonet04/dataset.gif

■ DataSet

DataSetに値を設定

 * DataTable の AddRow()メソッドを使用する
サンプル
  ・・・
        DataSet ds = new DataSet();
        DataTable dt = new DataTable();
        DataRow row = dt.NewRow();
        
        row.BeginEdit();
        row.Id = "0001";
        row.Name = "Mike";
        row.EndEdit();
        
        dt.AddRow(row);
  ・・・

DataSetに値を追加

 * DataTable の ImportRow()メソッドを使用する
サンプル
  ・・・       
        row.BeginEdit();
        row.Id = "0002";
        row.Name = "Tom";
        row.EndEdit();
        
        dt.ImportRow(row);
  ・・・

DataSetのマージ

 * Merge()メソッドを使用する
サンプル
  ・・・
  dataSet1.Merge(dataSet2); // dataSet1に、dataSet2をマージする
  ・・・

XML with DataSet

 * 読み込みには、ReadXml()メソッドを使用する
 * 書き込みには、WriteXml()メソッドを使用する
 * 引数は、パス(ファイル名つき)を設定する
サンプル
  ・・・
  string filePath = @"C:\test.xml";
  DataSet ds = new DataSet();
  ds.ReadXml(filePath);
  DataTable tbl = ds.Tables[0];
  ・・・

DataSetのプロパティ

CaseSensitive プロパティ
 * DataTable オブジェクト内の文字列比較で
   大文字と小文字を区別するかどうかを示す値を取得または設定
 * true:文字列比較で大文字と小文字を区別する場合
 * false:それ以外の場合(既定値)

関連記事

DataTable関連

DataTable ~ 基本編 ~
https://blogs.yahoo.co.jp/dk521123/38002713.html
DataTable ~ あれこれ編 ~
https://blogs.yahoo.co.jp/dk521123/20413895.html
DataTable ~ DISTINCT / 重複した値を省くには... ~
https://blogs.yahoo.co.jp/dk521123/14321146.html
DataTable ~ 重複を気にせずカウントするには... ~
https://blogs.yahoo.co.jp/dk521123/31382607.html
DataSet / DataTable ~ データテーブルのソート ~
https://blogs.yahoo.co.jp/dk521123/15231236.html
DataSet と TableAdapter について
https://blogs.yahoo.co.jp/dk521123/10415992.html
DataTable ~ DataTable で Linq する ~
https://blogs.yahoo.co.jp/dk521123/37976709.html