Rimuovere Duplicati in DataTable

mercoledì 25 marzo 2009 - 13.42

FedericoC Profilo | Junior Member

Ciao,

Ho una data-table in questo formato:

ID, Quantità

Il problema è che ci sono degli ID che si ripetono varioe volte nel ddatatable ed io in caso di duplicazione dovrei prendere soltanto un ID e precisamente quello che viene prima di tutti partendo dalla priam riga ed andando ad elimianre quelli che si ripetono..

Qualcuno sa consigliarmi un buon metodo per farlo?

denis.basei Profilo | Senior Member

Bè potresti usare un raggruppamento, del tipo
SELECT ID, Quantita from NomeTabella
GROUP BY ID, Quantita

... premesso che il raggruppamento avviene a parità di ID e Quantità.


Denis B. - www.baseiengineering.com

luxsor Profilo | Guru

Ciao Dennis
>... premesso che il raggruppamento avviene a parità di ID e Quantità.
La funzione Group By non produce alcuna modifica del resultset senza un operatore (count, sum ecc..) nella query.

Quindi non dovrebbe funzionare, così



denis.basei Profilo | Senior Member

E' vero però non ho capito se è richiesta dal nostro amico una modifica del resultset oppure un ritorno delle righe senza duplicati...
Denis B. - www.baseiengineering.com

Anonimo Profilo | Senior Member

Usa questa funzione per ripulirlo dai doppioni:

public DataTable cleanDataTable(DataTable dt) { DataTable dtCopy = new DataTable(); dtCopy.Columns.Add(new DataColumn("ID")); dtCopy.Columns.Add(new DataColumn("Quant")); dtCopy.AcceptChanges(); for (int i = 0; i < dt.Rows.Count; i++) { DataRow[] drc = dtCopy.Select("ID='" + dt.Rows[i][0].ToString() + "'"); if (drc.Length==0) { DataRow dr = dtCopy.NewRow(); dr[0]=dt.Rows[i][0]; dr[1] = dt.Rows[i][1]; dtCopy.Rows.Add(dr); } } dtCopy.AcceptChanges(); return dtCopy; }


Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5