Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/11/2005, 11:17
Avatar de moNTeZIon
moNTeZIon
 
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 20 años, 1 mes
Puntos: 9
Eliminar registros seleccionados en datagrid

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
__________________
..:: moNTeZIon ::..