2012-01-29 106 views
2

讓T1和T2具有以下字段數據表左連接C#

數據表

T1(客戶ID,COLX,科利)

T2(客戶ID,ColZ)

我需要執行留在客戶ID加盟

這是如何以簡單的方式在C#代碼中完成的?

謝謝。

+2

同樣的問題?我不明白你爲什麼再次發佈這裏是鏈接http://stackoverflow.com/questions/665754/inner-join-in-datatable-in-c-sharp – rahularyansharma 2012-01-29 17:39:26

+0

你的問題不清楚。連接表是關於SQL,而不是關於C#。數據庫可以通過多種方式訪問​​。以下是MSDN上描述的一個[使用DataReader檢索數據](http://msdn.microsoft.com/zh-cn/library/haa3afyz(v = vs.90).aspx)。 – 2012-01-29 17:49:22

+0

OP詢問左連接。鏈接@rahularyansharma張貼是一個內部聯接。 – 2012-01-29 17:53:31

回答

0

看起來好像您可能正在駕駛.NET概念Linq。如果是這樣的話,this question談論使用Linq左連接。

如果不是,請考慮左連接是什麼,並根據左連接的規則創建一個與您想要的(CustID,ColX,ColY,ColZ)相匹配的類型(ColZ爲空)並填充它。

2

你可以使用LINQ來做到這一點。這裏是左的僞代碼加入兩個數據集合:

T1.rows.Select(leftRow=>new{ 
CustID = leftRow.CustID 
ColX = leftRow.ColX 
ColY = leftRow.ColY 
ColZ = T2.Select(rightRow=>rightRow.ColZ).Where(rightRow=>rightRow.CustID == leftRow.CustID).FirstOrDefault() 
}); 
0

使用下面查詢左外連接

var query = from t_1 in T1 
         join t_2 in T2 on t_1.CustID equals t2.CustID into gj 
         from subpet in gj.DefaultIfEmpty() 
         select new { x= t_1.ColX,y=t_2.ColY};