10

DataTable のデータを非正規化しました。

データには、従業員の名前と、一連の給与サイクルで得た給与が含まれています。すなわち:

私のDataTableには以下が含まれています:

Employee 1    Jan-1-2012     $100
Employee 2    Jan-1-2012     $300
Employee 1    Feb-1-2012     $400
Employee 2    Feb-1-2012     $200
Employee 1    Mar-1-2012     $150
Employee 2    Mar-1-2012     $325

親の DataTable に従業員の名前が含まれ、子の DataTable に給与の詳細が含まれる DataSet にこのデータを読み込むにはどうすればよいでしょうか?

4

3 に答える 3

18

DataSet は、DataTable のコレクションに他なりません。したがって、dataTable を dataSet に単純に「ロード」するには、次のように追加します。

        DataTable employees = new DataTable();
        DataTable payCheckes = new DataTable();
        DataSet ds = new DataSet();
        ds.Tables.Add(employees);
        ds.Tables.Add(payCheckes);

どうにかしてデータテーブルを「結合」しますか? 各従業員の給与を取得しますか?

于 2012-07-29T16:20:17.837 に答える
4

手動挿入のないコード:

       DataSet ds = new DataSet();
        DataTable dtemploye = new DataTable();
        DataTable dtpayment = new DataTable();

        ds.Tables.AddRange(new DataTable[] { dtemploye, dtpayment });
        DataColumn dcIdemploye = dtemploye.Columns["ID_EMPLOYEE"];
        DataColumn dcIdemployeprice = dtpayment.Columns["ID_EMPLOYEE"];
        DataRelation drrelation = new DataRelation("relemploy_payment", dcIdemploye, dcIdemployeprice);
        ds.Relations.Add(drrelation);
于 2012-07-29T16:52:06.313 に答える
1
      DataSet ds = new DataSet();
        DataTable dtemploye = new DataTable();
        DataColumn dcnameemploye = new DataColumn();
        DataColumn dcIdemploye = new DataColumn();
        dtemploye.Columns.AddRange(new DataColumn[]{dcnameemploye,dcIdemploye});

        DataTable dtpayment = new DataTable();
        DataColumn dtprice = new DataColumn();
        DataColumn dtDate = new DataColumn();
        DataColumn dcIdemployeprice = new DataColumn();
        dtpayment.Columns.AddRange(new DataColumn[]{dcIdemployeprice,dtprice,dtDate});

        DataRow drrowemploy = dtemploye.NewRow();
        drrowemploy[0] = "1";
        drrowemploy[1] = "Employee 1";
        dtemploye.Rows.Add(drrowemploy);

        DataRow drrowpayment = dtpayment.NewRow();
        drrowpayment[0] = "1";
        drrowpayment[0] = "01/01/2012";
        drrowpayment[1] = " 300";


        ds.Tables.AddRange(new DataTable[]{dtemploye, dtpayment});

        DataRelation drrelation = new DataRelation("relemploy_payment", dcIdemploye, dcIdemployeprice);
        ds.Relations.Add(drrelation);
于 2012-07-29T16:30:40.573 に答える