Saber las líneas borradas, añadidas o modificadas por un DataSet
Artículo por Club Developers · 28 agosto 2006
4700 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);