Buenos dias,
Miren, utilizo este codigo para eliminar varios registros seleccionados en un datagrid:
Código:
Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEliminar.Click
Me.BindingContext(miDataSet, "Urgencias").EndCurrentEdit()
If (MessageBox.Show("Está seguro de eliminar los registros?", "Eliminar...", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = DialogResult.Yes) Then
Dim delStr As String = ""
For i As Integer = 0 To dgUrgencias.VisibleRowCount - 1
If dgUrgencias.IsSelected(i) Then
delStr &= dgUrgencias(i, 0) & ","
End If
Next
If delStr.Length > 0 Then
Dim delRows() As DataRow = miDataSet.Tables("Urgencias").Select("IdUrgencia IN (" & delStr & ")")
For Each delRow As DataRow In delRows
delRow.Delete()
Next
End If
End If
End Sub
Me gustaría mejorarlo. Se acepta cualquier idea.
A parte, es que tiene un pequeño problema. Como capta el campo clave (Columna 0 del grid) para definir qué columnas se van a eliminar y luego le hace la select para recuperar las ratarows, si alguna de las columnas seleccionada es nueva, como todavia no tiene asignado su campo clave, no la puedo recuperar.
En un prinipio habia decidiso hacerlo así porqué me fiaba más, ya que al hacrlo a través de BindingContext o a través del datagrid, muchas veces, segun estén los datos ordenados, no coiniden las posiions del uno con las del otro.
Bueno, igual todo es un lio mental que tengo y la solucion es mucho más facil.
Gracias a todos