CLR: .Net / Mono / Boo / Otros CLR > VB .NET
Preguntar Antes De Editar Y Eliminar Reg.
(1/1)
UserCode:
Hola, estoy migrando al .net que a decir verdad ya lo habia tenido en curso hace un tiempo pero hacer cosas (ya hechas en VB6) me hacia volver, y ahora que tengo el tiempo, pues a comenzar a lo nuevo para lo nuevo (para el futuro, claro).
No sé cómo poner el mensaje o pregunta cuando se piensa Editar o Borrar un registro, ya que es algo obligatorio en caso de que el operador se equivoque y accidentalmente pulse dicho botón, desde luego.
Yo lo hacía así en VB6 (bajo un cierto codigo clásico de aquel entonces):
EDITANDO:
--- Código: Text --- If Rs.RecorCount>0 then 'Esto para evitar error en .MoveFirst Exit Sub 'o poner un mensaje de que no hay registros en la tablaEnd if
Con un Else en ese If o fuera de él, (es indiferente, a gusto) pues vendria esto:
--- Código: Text --- While Not Rs.EOF Rs.MoveFirst If TxtID = Rs("CampoID") Then If MsgBox("¿Confirma que desea Editar este Registro?", vbInformation + vbYesNo, "Edicion de Registro") = vbYes Then TxtCampo1.Text = Rs("Campo1") TxtCampoEtc.text = Rs("CampoEtc") MsgBox "El Registro ha sido Editado" Exit Sub Else Exit Sub End If Rs.MoveNextWendMsgbox "No se ha encontrado el registro indicado, verifique el ID"
Ahora, apenas estoy conociendo el código para el .Net por ejemplo tengo o he empezado con esto, este código Edita (esto por parámetros):
--- Código: Text --- Dim Editar As StringDim ordenSQL As OleDbCommand Editar = "Update Telefonos Set Nombre=@NOMBRE, TelefCel=@TELEFCEL, TelefHab=@TELEFHAB, "Editar = Editar & "TelefTrab=@TELEFTRAB, Email=@EMAIL, Direccion=@DIRECCION "Editar = Editar & "Where NombreClave = " & TxtNombreClave.Text ordenSQL = New OleDbCommand(Editar, conexionBD) ordenSQL.Parameters.Add(New OleDbParameter("@NOMBRE", OleDbType.VarWChar, 50))ordenSQL.Parameters("@NOMBRE").Value = TxtNombre.TextordenSQL.Parameters.Add(New OleDbParameter("TELEFCEL", OleDbType.VarWChar, 20))ordenSQL.Parameters("@TELEFCEL").Value = TxtTelefCel.TextordenSQL.Parameters.Add(New OleDbParameter("TELEFHAB", OleDbType.VarWChar, 20))ordenSQL.Parameters("@TELEFHAB").Value = TxtTelefHab.TextordenSQL.Parameters.Add(New OleDbParameter("@TELEFTRAB", OleDbType.VarWChar, 20))ordenSQL.Parameters("@TELEFTRAB").Value = TxtTelefTrab.TextordenSQL.Parameters.Add(New OleDbParameter("@EMAIL", OleDbType.VarWChar, 50))ordenSQL.Parameters("@EMAIL").Value = TxtEmail.TextordenSQL.Parameters.Add(New OleDbParameter("@DIRECCION", OleDbType.VarWChar, 60))ordenSQL.Parameters("@DIRECCION").Value = TxtDireccion.Text 'mandando la SQL a la BD:ordenSQL.Connection.Open()ordenSQL.ExecuteNonQuery()ordenSQL.Connection.Close()MsgBox("EL REGISTRO HA SIDO EDITADO")
¿Cómo podría con este último código poner el mensaje al compararse TxtID = CampoID, es decir, luego de cumplirse esto, vendria el script del mensaje, y cómo haría valer un "Si" o un "No" por parte del usuario.
La solución de esto es igual para la opción de Eliminar, al saber como hacerlo en Editar sería igual, supongo yo, desde luego, deberia ser asi.
Tambien medio estoy armando un código con DataSet y DataAdapter, pero aun estoy trabajando en eso, soy nuevo en el .Net :P
Muchas gracias Desarrolladores de esta plataforma .net por sus depuraciones hehe.
Saludos.
senzao18:
Puedes probar con
if messagebox.show("¿Question?","Titulo",DialogResult.YesNo,...) Then = DialogResult.Yes Then
Endif
Bueno es algo asi,. la verdad no recuerdo exactamente el orden en que van los parametros de .Show(,,,).. pero asi ppuedes preguntar y armar un camino en base a las respuestas.....
Espero y eso sea lo que buscas...
UserCode:
si, eso sirve, aunque si nos fijamos, no valida nada como "If Txt=CampoTabla Then" sino que es un IF que de una vez saca el aviso sin importar si el registro fue o no encontrado. Además de que en VB6 uno ponia un ciclo que recorria todos los registros, en este caso la SQL lo hace a su manera, más corto en una sola linea.
Ese IF me sirve si, solo me quedaria ver lo de la validacion, es decir, que si encontro el registro, porque sin un If Txt=CampoTabla Then, igualito se pasa a esas lineas de código, la diferencia aqui y ahora con esto, es que al menos ya hay una pregunta que frena una posible operación por descuido, asi que esta bien, mejor a como estaba antes sin ningun tipo de aviso que confirmara la operacion.
gracias man, aunque no es IF con aviso que valide, igual sirve :comp:
ya es algo, seguire viendo lo de la validacion, no sea que uno escriba garabatos en la ventana (un reg que no exista) e igual saque el aviso de si desea editar o no el registro.
Navegación
Ir a la versión completa