どっとねっとふぁん

C# Tips And Samples
in 検索

17.DataSetを作成する

最新の投稿は、投稿日時: 06-22-2005, 4:18 午後 投稿者: ono です。スレッドには 0 件の返答があります。
投稿のソート: 前へ 次へ
  •  06-22-2005, 4:18 午後 26

    17.DataSetを作成する

    DataSetは単独で使うとプログラム内にデータベースがあるように利用できます。
    単独で使うために、まずDataSetの形(スキーマ)を定義するには以下のようにします。
    -------------------------------------------------------
    using System;
    using System.Data;
    
    class DataSetTest
    {
        static void Main()
        {
            // DataSetの作成
            DataSet ds = new DataSet();
            ds.DataSetName = "testData";
            // DataTableの作成
            DataTable dt = new DataTable();
            dt.TableName = "testTable";
            // DataColumnの作成、定義、Tableへ追加
            DataColumn idCol = new DataColumn();
            idCol.DataType = typeof(int);
            idCol.ColumnName = "id";
            dt.Columns.Add(idCol);
            // DataColumnを作成しつつTableへ追加
            dt.Columns.Add("user", typeof(string));
            dt.Columns.Add("age", System.Type.GetType("System.Int32"));
            // キー項目の設定
            dt.PrimaryKey = new DataColumn[] { idCol };
            ds.Tables.Add(dt);
            // DataSetのスキーマを保存
            ds.WriteXml("testdata.xml", XmlWriteMode.WriteSchema);
        }
    }
    
    -------------------------------------------------------
    上記サンプルを実行すると、testdata.xmlファイルに作成したDataSetのスキーマが保存されます。
    このスキーマを利用してDataSetにデータを追加するためには以下のようにします。
    -------------------------------------------------------
    using System;
    using System.Data;
    
    class DataSetTest1
    {
        static void Main()
        {
            // DataSetの作成と定義の読み込み
            DataSet ds = new DataSet();
            ds.ReadXml("testdata.xml");
            // 1行目のデータの作成
            DataRow dr1 = ds.Tables[0].NewRow();
            dr1[0] = 1;
            dr1["user"] = "user1";
            dr1["age"] = 25;
            ds.Tables[0].Rows.Add(dr1);
            // 2行目のデータの作成
            DataRow dr2 = ds.Tables["testTable"].NewRow();
            dr2.ItemArray = new object[] { 2, "user2", 37 };
            ds.Tables["testTable"].Rows.Add(dr2);
            // DataSetのスキーマとデータを保存
            ds.WriteXml("testdata1.xml", XmlWriteMode.WriteSchema);
        }
    }
    
    -------------------------------------------------------

    プログラムの記述に統一性がないのは、いろいろな方法を試しているためです。
    実際には自分がよく利用する方法を決めてしまったほうがいいでしょうね。


    あおい情報システム株式会社
     小野修司(どっとねっとふぁん)
RSS ニュースフィードで参照
SkinName:iroha_CS2
Powered by Community Server, by Telligent Systems