我使用一個SqlDataReader按行添加一行到一個DataTable類似如下:如何避免增加重複的行到一個DataTable
while (reader.Read())
{
dataTable.LoadDataRow(reader.CurrentRow(), LoadOption.PreserveChanges);
}
這工作,但我需要能夠避免重複添加行到數據表。我希望能夠使用DataTable中的Contains或Find方法,但我無法找到一種方法將reader.CurrentRow()中的object []轉換爲DataRow進行比較,而無需將其添加到數據表中。
我已經研究過創建對象[] s的哈希集,然後將它們一次添加到數據表的最後,但我忘記默認對象IEqualityComparer只比較引用。
有沒有一種可行的方法做到這一點,而不需要在最後刪除重複?
如果刪除重複項是唯一的出路,那麼最好的方法是什麼?
編輯: 我從數據庫拆分不同的行到代碼中的單獨的數據表。來自查詢結果的每一行都是不同,但每行的部分都不是。不幸的是,我需要完成我的問題所要求的,因爲查詢的結果已經不同。
爲什麼不讓數據庫照顧它呢? – Gorgsenegger 2012-08-09 19:54:44
@Gorgsenegger:我正在處理一個連接多個表的查詢,並處理與公共因子相關的每個結果塊。有些行包含一些表中的重複項,但每行實際上是不同的。 – Jared275 2012-08-09 19:57:44
使用SQL'DISTINCT'或'GROUP BY'來保證不同的行 – PinnyM 2012-08-09 19:58:18