Saber las líneas borradas, añadidas o modificadas por un DataSet
Artículo por Club Developers · 11 mayo 2006
2142 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:
vbnet
' representa una lÃnea de datos de un DataTable Dim dr As DataRow ' variable string para recuperar los resultados Dim lineaModif, lineaSupp, lineaAdd As String Dim result As String ' recorremos cada lÃnea del DataTable For Each dr In DataSet.Tables("DataTable").Rows  ' según el estado de la lÃnea  Select Case 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      lineaModif = lineaModif & dr(0, DataRowVersion.Original) & "-" & dr(1, _           DataRowVersion.Original) & vbCrLf    ' LÃnea borrada    Case DataRowState.Deleted      lineaSupp = lineaSupp & dr(0, DataRowVersion.Original) & "-" & dr(1, _           DataRowVersion.Original) & vbCrLf    ' LÃnea añadida    Case DataRowState.Added      linaAdd = lineaAdd & dr(0) & "-" & dr(1) & vbCrLf End Select Next result = "lÃnea(s) modificada(s) : " & vbCrLf & lineaModif & vbCrLf & "lÃnea(s) _      borrada(s) : " & vbCrLf & lineaSupp & vbCrLf & "LÃnea(s) añadida(s) :" & vbCrLf & lineaAdd MessageBox.Show(result)