Visual Basic.NET - Validación al momento de guardar registros.

 
Vista:
Imágen de perfil de Richard

Validación al momento de guardar registros.

Publicado por Richard (3 intervenciones) el 05/10/2021 03:41:11
El siguiente formulario será utilizado para almacenar El Código, La Descripción y el Tipo de Equipo de cómputo, Ej: Código: 01, Descripción: Computadora, Tipo Equipo: Portátil.
Quisiera por favor me puedan ayudar a guiarme cómo deberá ser la validación en el botón guardar (CmdGuardar), que no inserte espacios vacíos, validar si existe y enviar un mensaje que ya existe el registro en la BD, que si se desea editar , si no existe almacenarlo.
Actualmente tengo algo así, pero no me trabaja correctamente: (Mil gracias por la atención)

Private Sub CmdGuardar_Click(sender As Object, e As EventArgs) Handles CmdGuardar.Click
Dim intCodigo As Integer
Dim strDescripcion As String
Dim intTipoEquipo As Integer
Dim intOptEditar As Integer

If TxtCodigo.Text = "" Then
MsgBox("Digite un código numérico", MsgBoxStyle.Exclamation, "Registro de Equipos")
TxtCodigo.Select()
ElseIf TxtDescripcion.Text = "" Then
MsgBox("Ingrese la descripción", MsgBoxStyle.Exclamation, "Registro de Equipos")
TxtDescripcion.Select()
ElseIf CbxTipoEquipo.Text = "" Then
MsgBox("Seleccione un tipo de equipo", MsgBoxStyle.Exclamation, "Registro de Equipos")
CbxTipoEquipo.Select()
ElseIf Conex.EquipoRegistrado(TxtCodigo.Text) = True Then
MsgBox("Código ya se encuentra registrado", MsgBoxStyle.Critical, "Registro de Equipos")
TxtCodigo.Select()
TxtCodigo.Focus()
ElseIf Conex.TipoEquipoRegistrado(intTipoEquipo) = False Then
MsgBox("Tipo de equipo ya se encuentra registrado", MsgBoxStyle.Critical, "Registro de Equipos")
CbxTipoEquipo.Select()
CbxTipoEquipo.Focus()

Else

intCodigo = TxtCodigo.Text
strDescripcion = TxtDescripcion.Text
intTipoEquipo = CbxTipoEquipo.SelectedValue 'Trasla valor del ComboBox a la variable para almacenar

Cmd.Connection = Conn
Cmd.CommandType = CommandType.Text

sql = ""
sql = "INSERT INTO EQUIPO (IDE_EQUIPO, DSC_EQUIPO, IDE_TIPO_EQUIPO) VALUES ('" & intCodigo & "','" & strDescripcion & "','" & intTipoEquipo & "')"
Cmd.CommandText = sql

Try
Cmd.ExecuteNonQuery()
MsgBox("Registro almacenado correctamente", MsgBoxStyle.Information, "Registro de Equipos")
TxtCodigo.Text = ""
TxtDescripcion.Text = ""
CbxTipoEquipo.Text = ""
CmdGuardar.Enabled = False
CmdNuevo.Enabled = True
TxtDescripcion.Enabled = False
CbxTipoEquipo.Enabled = False
dgvRegistroEquipos.Visible = True
dgvRegistroEquipos.Enabled = True
dgvRegistroEquipos.Refresh()
TxtCodigo.Select()


'****Actualiza el DataGridView******
Dim da As New SqlDataAdapter
Dim dt As New DataTable

Try
da = New SqlDataAdapter("select * from EQUIPO", Conn)
da.Fill(dt)
dgvRegistroEquipos.DataSource = dt
dgvRegistroEquipos.Refresh()

Catch ex As Exception
MsgBox(ex.Message)
End Try
Catch ex As Exception
MsgBox(ex.ToString)
End Try


intOptEditar = MsgBox("El registro digitado YA existe, ¿Desea Editarlo?", vbYesNo + vbQuestion + vbDefaultButton2, "¡Atención! Registro de Equipos")
If (intOptEditar = vbYes) Then

'Limpia el DataGridView
'dgvRegistroEquipos.DataSource = Nothing
TxtCodigo.Select()
TxtCodigo.Focus()
CmdGuardar.Enabled = False
CmdModificar.Enabled = True
CmdCancelar.Enabled = True
dgvRegistroEquipos.Visible = True
Else
TxtCodigo.Select()
TxtCodigo.Text = ""
TxtDescripcion.Text = ""
CbxTipoEquipo.Text = ""
CmdGuardar.Enabled = False
TxtDescripcion.Enabled = False
CbxTipoEquipo.Enabled = False
CmdNuevo.Enabled = True
TxtCodigo.Select()
TxtCodigo.Focus()
End If
End If
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Validación al momento de guardar registros.

Publicado por Phil Rob (1554 intervenciones) el 05/10/2021 17:43:00
Hola

Tu código parece me mucho demasió complicado.

Este la razón que no lo escribir pero puedo te dar 2 pistas :

Primero, ExecuteNonQuery da un valor que puede ti informar sobre la cualidad de la ejecución.

1
Dim CuantidadRegistrosCambiados As Integer = Cmd.ExecuteNonQuery()

Si CuantidadRegsitrosCambiados < 1, entonces ningún registro agregado.
Si CuantidadRegsitrosCambiados > 1, entonces existe dupicados.

Segundo, en la frase SQL, si un campo es en el tipo numérico, no debes escribir los apóstrofos.

1
sql = "INSERT INTO EQUIPO (IDE_EQUIPO, DSC_EQUIPO, IDE_TIPO_EQUIPO) VALUES ('" & intCodigo & "','" & strDescripcion & "','" & intTipoEquipo & "')"

No es bien cuando intCodigo y intTipoEquipo están Integer. Debes escribir :

1
sql = "INSERT INTO EQUIPO (IDE_EQUIPO, DSC_EQUIPO, IDE_TIPO_EQUIPO) VALUES (& intCodigo & ",'" & strDescripcion & "," & intTipoEquipo & ")"

Los apóstrofos están necesarios solamente para el campo strDescripcion.

Espero que mis comentarios te ayudarán …
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Richard

Validación al momento de guardar registros.

Publicado por Richard (3 intervenciones) el 05/10/2021 17:57:55
Saludos Profesor Phil Rob.

Revisaré lo que me indicas.

Muchas gracias por la atención y las recomendaciones brindadas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Validación al momento de guardar registros.

Publicado por Rey (3 intervenciones) el 07/10/2021 04:28:32
Te expongo como yo lo hago, lo cual no significa q sea lo maximo. Para ahorarme tiempo en la programación uso los index unique en el diseño de la base de datos para evitar duplicar valores, simplemente al insert provocara un error y lo atiendo. Lo otro, nunca uso integer para codigos, pues a la hora de hacer reportes todos los valores numericos se le asocian funciones matemáticas y me trae confusión. Uso valores numéricos si hago operaciones matemáticas, de lo contrario uso tipo de textos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Richard

Validación al momento de guardar registros.

Publicado por Richard (3 intervenciones) el 19/10/2021 03:37:21
Saludos Rey.

Muchas gracias por la atención y las recomendaciones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar