3

私のプロジェクトには、2 つのデータテーブルdtNamesdtDetails.

SQLについてはわかりません。ここでは、XML とテキストファイルに接続しています。

dtNames

EmpName    EmpRole

   a         2
   b         3
   c         4

dt詳細

 Empid     EmpName   EmpCity   EmpRole

  101        a         abc       3  //EmpRole not equal to above table EmpRole
  102        b         abc       3
  103        c         xyz       4
  104        d         pqr       5
  105        e         rst       6

EmpNameこれらの 2 つのデータテーブルをandに基づいて関連付けEmpRole(ここでは と比較dtNames)、結果を DataSet dsMain(からのテーブル) に格納し、とdtDetailsのような比較に従って 2 つのデータテーブルを分割します。matchedDataTableunmatchedDataTable

これはDataRelationまたはRowFilterを使用して実行できることはわかっていますが、他のデータテーブルと比較する列が 2 つあるため、これを行う方法がわかりません。

以下のコードを試しました:(動作しません)

            DataSet dsMain = new DataSet();
            DataRelation newRelation = new DataRelation("processData"
                , dtNames.Columns["EmpName"], dtDetails.Columns["EmpName"]);
            dsMain.Relations.Add(newRelation);

ご覧のとおり、上記のコードでは、ある列を他の列と比較しているだけです。2つと比較する方法。私はとても近くにいます

手伝ってください。

4

2 に答える 2

5

列配列を受け入れるコンストラクターを使用します。

DataSet dsMain = new DataSet();
DataRelation newRelation = new DataRelation("processData",
    new DataColumn[] { dtNames.Columns["EmpName"], dtNames.Columns["EmpRole"] },
    new DataColumn[] {dtDetails.Columns["EmpName"], dtDetails.Columns["EmpRole"]}
);
dsMain.Relations.Add(newRelation);
于 2012-10-18T13:39:35.667 に答える
4

の可能なコンストラクターを確認しましたDataRelationか?

の配列を渡すだけでDataColumn、複数の列を組み合わせることができます。そのようです:

DataRelation newRelation = new DataRelation("test", new DataColumn[] { dt1.Columns[0], dt1.Columns[1] },
                                                    new DataColumn[] { dt2.Columns[0], dt2.Columns[1] });
于 2012-10-18T13:37:09.813 に答える