Miren, utilizo este codigo para eliminar varios registros seleccionados en un datagrid:
Código:
Me gustaría mejorarlo. Se acepta cualquier idea.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
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
