ho usato .Net 4.0 framwork con il componente applicazione WinForm DataGridView
e impostare DataSource
con DataTable
.Poi c'è un pulsante per aggiungere riga in DataGridView
.DataTable selezionare con LINQ e controllo è lì righe duplicate o no
Tale codice come questo.
gridTable = (DataTable)dgrMainGrid.DataSource;
DataRow dr = gridTable.NewRow();
Prima di aggiungere Nuova riga in DataTable ho controllato se c'è un duplicato row.To farlo ho usato questo LINQ
Query.
//Item Code cannot duplicate
var results = from itmCode in gridTable.AsEnumerable()
where (itmCode.Field<string>("Item Code") == txtGrdItmLoc.Text)
select itmCode;
Ci dopo come controllo le righe duplicate disponibile o meno nella tabella dei dati?
if(//doWhatever function here){
//if there's duplicate row values
isNotDuplicate = false;
}
else{
isNotDuplicate=true;
}
Prima di andare al passo successivo ho bisogno di ottenere c'è un duplicato o meno e impostare in variabile isNotDuplicate o cose simili per controllare che. quindi penso di contare le righe results
ma non esiste una funzione del genere per contare i "risultati var", Qualche possibilità di farlo?
if (!isDuplicate)
{
dr["#"] = true;
dr["Item Code"] = lSysItemCode;
dr["Stock Code"] = txtGdrItmItemLoc.Text;
dr["Brand"] = txtGrdItmBrand.Text;
dr["Model No"] = cmbGrdItmModel.SelectedValue.ToString();
gridTable.Rows.Add(dr);
dgrMainGrid.DataSource = gridTable;
}
I can use
for loop
withDataTable
and check whether it's contain new value that equals to "Item Code" but I looking alternative method with linq.
semplicemente che sto cercando di sostituzione per questo utilizzando LINQ.
foreach (DataRow r in gridTable.Rows) {
if (r["Item Code"].ToString() == txtGrdItmLoc.Text) {
isDuplicate = true;
}
}
Sample Project : http://1drv.ms/1K4JnHt
Sample Code : http://pastebin.com/v7NMdUrf
'gridTable.AsEnumerable() GroupBy (g = > g.Field ("Codice articolo")). Dove (g => g.Count()> 0) 'Restituirà i duplicati. –
Rob
Duplicato come in ..? Tutte le file con lo stesso 'codice articolo '? –
Quando ho aggiunto un nuovo elemento. Devo controllare quell'elemento già nella colonna della tabella di dati "Codice articolo" – Elshan