从c#中的数据集中删除重复记录

时间:2017-10-31 03:48:45

标签: c# excel

我需要将数据从Excel工作表上传到我的网格视图。但我需要防止插入重复的行。那我怎么能用我的数据集呢?如果数据集包含重复项,如何检查数据集。如果它有重复,我需要给出一条错误信息。这是我的代码。

odfExcelGet.Title = "Excel Upload";

odfExcelGet.FileName = "Excel";
odfExcelGet.Filter = "Excel File (*.xls;*.xlsx;)|*.xls;*.xlsx;";
odfExcelGet.InitialDirectory = @"c:\";
odfExcelGet.ShowDialog();
txtAddress.Text = odfExcelGet.FileName;

this.Cursor = Cursors.WaitCursor; 

string ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
ConnectionString += odfExcelGet.FileName;
ConnectionString += @";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";";

OleDbDataAdapter da = new OleDbDataAdapter("select * from [Sheet1$]", ConnectionString);
da.Fill(dsMain);

dgGrid.DataSource = dsMain.Tables[0];

如何修改此代码以防止重复。

1 个答案:

答案 0 :(得分:0)

一个简单的方法是, 将ColumnType替换为唯一的列类型。

var newDataTable = dsMain.Tables[0];
dgGrid.DataSource = newDataTable.AsEnumerable().GroupBy(col => col.Field<ColumnType>("ColumnName"))
.Select(x=>x.First()).CopyToDataTable();