2017-10-31 7 views
0

にデータセットから重複するレコードを削除します。重複行の挿入を防ぐ必要があります。どうすれば私のデータセットでこれを行うことができますか?データセットに重複が含まれている場合、データセットをチェックするにはどうすればよいですか?重複がある場合は、エラーメッセージを出す必要があります。ここに私のコードです。私は私のグリッドビューにExcelシートからのデータをアップロードする必要がC#

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

私はリンクの上に言及しました。これを行う他の方法はありますか?私はハッシュテーブルを使用しないで意味ですか? – Didu

+0

代わりに '' [Sheet1の$]から選択*で、 '[Sheet1の$]から*明確な選択'てみてください - 働くかもしれません。しかし、それはユニークな –

+0

感謝ニックのご定義に依存します。私の要求はこの解決法とは異なります。 – Didu

答えて

0

簡単な方法は次のようになり、 は一意であるあなたの列のタイプとColumnTypeを交換してください。

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