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


