我需要将数据从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];
如何修改此代码以防止重复。
答案 0 :(得分:0)
一个简单的方法是, 将ColumnType替换为唯一的列类型。
var newDataTable = dsMain.Tables[0];
dgGrid.DataSource = newDataTable.AsEnumerable().GroupBy(col => col.Field<ColumnType>("ColumnName"))
.Select(x=>x.First()).CopyToDataTable();