多的條款我有一個關於LINQ 問題有兩個數據表,我想給內連接,代碼如下:從數據表到數據表中通過LINQ
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
dt1.Columns.Add("TEST1");
dt1.Columns.Add("TEST2");
dt1.Columns.Add("TEST3");
dt1.Columns.Add("TEST4");
dt2.Columns.Add("TEST2");
dt2.Columns.Add("TEST5");
dt2.Columns.Add("TEST6");
dt2.Columns.Add("TEST7");
for (int i = 0; i < 10; i++)
{
DataRow row = dt1.NewRow();
row["TEST1"] = "aaa";
row["TEST2"] = string.Format("bbb-{0}{1}{2}", i, (i % 2 == 0 ? "-" : ""), (i % 2 == 0 ? "ddd" : ""));
row["TEST3"] = i.ToString();
row["TEST4"] = "ddd";
dt1.Rows.Add(row);
}
for (int i = 0; i < 8; i++)
{
DataRow row = dt2.NewRow();
row["TEST2"] = "bbb";
row["TEST5"] = i.ToString();
row["TEST6"] = i % 2 == 0 ? "ddd" : "";
row["TEST7"] = "sss";
dt2.Rows.Add(row);
}
DT1的描述是:
TEST1 TEST2 TEST3 TEST4
---------------------------
aaa bbb-0-ddd 0 ddd
aaa bbb-1 1 ddd
aaa bbb-2-ddd 2 ddd
aaa bbb-3 3 ddd
aaa bbb-4-ddd 4 ddd
aaa bbb-5 5 ddd
aaa bbb-6-ddd 6 ddd
aaa bbb-7 7 ddd
aaa bbb-8-ddd 8 ddd
aaa bbb-9 9 ddd
及DT2的描述是:
TEST1 TEST5 TEST6 TEST7
----------------------------
bbb 0 ddd sss
bbb 1 sss
bbb 2 ddd sss
bbb 3 sss
bbb 4 ddd sss
bbb 5 sss
bbb 6 ddd sss
bbb 7 sss
第一個問題是,我想加入DT1及DT2爲
TEST2 TEST3 TEST7
---------------------------
bbb-0-ddd 0 sss
bbb-1 1 sss
bbb-2-ddd 2 sss
bbb-3 3 sss
bbb-4-ddd 4 sss
bbb-5 5 sss
bbb-6-ddd 6 sss
bbb-7 7 sss
所以我寫的代碼如下狀態,我想加入DT1及DT2入dt
DataTable dt = new DataTable();
dt.Columns.Add("TEST2");
dt.Columns.Add("TEST3");
dt.Columns.Add("TEST7");
var result = from A1 in dt1.AsEnumerable()
join
A2 in dt2.AsEnumerable()
on
A1.Field<string>("TEST2") equals (A2.Field<string>("TEST2") + "-" + A2.Field<string>("TEST5") + (A2.Field<string>("TEST6") == string.Empty ? "-" : string.Empty) + A2.Field<string>("TEST6"))
select new dt.LoadDataRow(new object[] { A1.Field<string>("TEST2"), A1.Field<string>("TEST3"), A2.Field<string>("TEST7") }, false);
result.CopyToDataTable();
,但它不工作〜 此外,我想要更改TEST3和TEST7的列,TEST3將被命名爲X1並且TEST3將命名爲X5,因此最後一行的代碼應該是
select new dt.LoadDataRow(new object [] {A1.Field(「 TEST2「),X1 = A1.Field(」TEST3「),X5 = A2.Field(」TEST7「)},false);
這是另一個問題....我該怎麼辦?