Modificar un ForEach para que muestre un mensaje de confirmación 1 sola vez
Publicado por María Inés (49 intervenciones) el 03/06/2018 22:23:24
Buenos días a todos!!! Les comento brevemente qué quiero hacer. El siguiente código es de un botón eliminar que permite borrar múltiples registros de un datagridview. Anda perfectamente (por eso no hago referencia a las funciones que están en otra capa).
La cosa es que quería que si son varios los registros que borra, entonces, que me muestre el mensaje de confirmación 1 sola vez de que los borró, no 1 por cada registro.
El tema es que como está dentro del "For Each" no me doy cuenta cómo puedo hacer para que "si borra" o sea la parte que dice "If func.Eliminar" entonces que me diga si lo borró o no, porque lógicamente lo tiene que ir haciendo uno por uno.
Cuestión, le he dado vueltas al asunto, intenté con unos dt.Rows.Count >=1 pero siguen dentro del For Each así que claramente, no dan resultado.
Si alguno me puede aportar alguna idea, les agradecería. Abajo dejo el código de mi Botón Eliminar (Es un datagridview con una columna oculta "Eliminar" que al hacer click en un checkbox, aparece la columna y permite seleccionar múltiples registros, una vez que lo borra o no, envía el mensaje, uno por cada registro eliminado. Lo que quiero es que si hay varios registros sólo muestre 1 mensaje, es una cuestión más de estética que de funcionalidad pero queda feo así)
Desde ya muchas gracias a todos!
La cosa es que quería que si son varios los registros que borra, entonces, que me muestre el mensaje de confirmación 1 sola vez de que los borró, no 1 por cada registro.
El tema es que como está dentro del "For Each" no me doy cuenta cómo puedo hacer para que "si borra" o sea la parte que dice "If func.Eliminar" entonces que me diga si lo borró o no, porque lógicamente lo tiene que ir haciendo uno por uno.
Cuestión, le he dado vueltas al asunto, intenté con unos dt.Rows.Count >=1 pero siguen dentro del For Each así que claramente, no dan resultado.
Si alguno me puede aportar alguna idea, les agradecería. Abajo dejo el código de mi Botón Eliminar (Es un datagridview con una columna oculta "Eliminar" que al hacer click en un checkbox, aparece la columna y permite seleccionar múltiples registros, una vez que lo borra o no, envía el mensaje, uno por cada registro eliminado. Lo que quiero es que si hay varios registros sólo muestre 1 mensaje, es una cuestión más de estética que de funcionalidad pero queda feo así)
Desde ya muchas gracias a todos!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Private Sub Btn_Eliminar_Click(sender As Object, e As EventArgs) Handles Btn_Eliminar.Click
Dim result As DialogResult
result = MessageBox.Show("¿Realmente desea eliminar el/los paciente/s seleccionado/s?", "Eliminando registros", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
If result = DialogResult.OK Then
Try
For Each row As DataGridViewRow In Dgv_Buscarpaciente.Rows
If row.Cells("Eliminar").Value <> Nothing Then
Dim onekey As Integer = Convert.ToInt16(row.Cells("NHC").Value)
Dim Dts As New VCargapacientes
Dim func As New FCargapacientes
Dts.GNHC = onekey
If func.Eliminar(Dts) Then
MessageBox.Show("Eliminación completada satisfactoriamente", "Eliminando registros", MessageBoxButtons.OK, MessageBoxIcon.Information)
Chb_Eliminar.CheckState = CheckState.Unchecked
Else
MessageBox.Show("La acción no fue completada", "Eliminando registros", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End If
Next
Mostrar()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
MessageBox.Show("Cancelando eliminación de registro/s", "Eliminando registros", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End Sub
Valora esta pregunta


0