Saber las líneas borradas, añadidas o modificadas por un DataSet
Artículo por Club Developers · 28 agosto 2006
6120 vistas
Este código permite detectar los valores de las líneas de un DataGrid que han sido modificadas, borradas o añadidas por el usuario. Se supondrá que se ha llenado el DataGrid mediante un DataSet y un SqlDataAdatper y que la sentencia sql del DataAdapter contiene dos campos siendo de la forma:
En el evento click de un botón, podemos poner:
sql
SELECT Campo1, Campo2 FROM Tabla
En el evento click de un botón, podemos poner:
csharp
// representa una línea de datos de un DataTable DataRow dr; // variable string para recuperar los resultados string ligneModif, ligneSupp, ligneAjout; string result; // recorremos cada línea del DataTable foreach( dr in DataSet.Tables["DataTable"].Rows) { // según el estado de la línea switch(dr.RowState) { // LÃnea modificada case DataRowState.Modified : // dr[0] recupera el valor de la primera columna // DataRowVersion.Original recupera el valor antes de la modificación ligneModif += dr[0, DataRowVersion.Original] + "-" + dr[1, DataRowVersion.Original]; break; // LÃnea borrada case DataRowState.Deleted : ligneSupp += dr[0, DataRowVersion.Original] + "-" + dr[1, DataRowVersion.Original]; break; // LÃnea añadida case DataRowState.Added: ligneAjout += dr[0] + "-" + dr[1]; } } result = "línea(s) modificada(s) : \n" + ligneModif + "\nlínea(s) borrada(s) : \n" + ligneSupp "\nLÃnea(s) añadida(s) :\n" ligneAjout; MessageBox.Show(result);


