2016-03-01 64 views
1

我從數據庫中提取記錄並將結果存儲在數據集中。從數據集/表中取出不同的記錄使用linq到數據集/數據表

我喜歡這個

Sid Table userid par1 par2 par3 
274 tbl1 43  0 0 0 
232 tbl1 43  1 2 0 
232 tbl1 43  1 2 1 
232 tbl2 43  1 2 0 
232 tbl2 43  1 2 1 

我想告訴所有的6列,但不同的record.Distinct應該是希德的數據集,表和userid.I希望這樣

Sid Table userid par1 par2 par3 
274 tbl1 43  0 0 0 
232 tbl1 43  1 2 0 
232 tbl2 43  1 2 0 

輸出它可能通過linq到數據集/數據表。 我無法獲得數據集上的AsEnumerable方法,但獲取數據表。

+0

你想通過希德,表和用戶ID連接兩張表,Dataset.Tables [0](對於TBL1)和Dataset.Tables [1](用於TBL2),然後組? – Anil

+0

沒有不那樣 –

+0

你可以請澄清你的意思是什麼數據集,我正在嘗試「我無法獲得數據集上的AsEnumerable方法,但獲得數據表」 – Anil

回答

1

我對這個問題感到困惑,但這是想要你想嗎?

yourDatatable.Rows.Cast<DataRow>() 
.GroupBy(r => new { Sid = r.Field<int>("Sid"), userid = r.Field<int>("userid"), Table = r.Field<string>("Table") }) 
.Select(e => e.FirstOrDefault()) 
.Select(grp => new 
{ 
    Sid = grp.Field<int>("Sid"), 
    userid = grp.Field<int>("userid"), 
    Table = grp.Field<string>("Table"), 
    par1 = grp.Field<int>("par1"), 
    par2 = grp.Field<int>("par2"), 
    par3 = grp.Field<int>("par3") 
}); 
+0

嗨codingangel08,感謝您的幫助。我爲我工作。檢查指定列,我可以採取數據表的所有列。因爲我的列是動態的。如果它存在於數據表中,拿它。 –