Visual Basic.NET - Problema con boton actualizar

   
Vista:

Problema con boton actualizar

Publicado por Gustavo (1 intervención) el 14/04/2016 03:17:00
Estoy haciendo una aplicacion para actualizar los materiales que tiene un alumno dentro de una base de datos. Me parece que el error esta en la instruccion SQL pero no me llego a dar cuenta. Me darian una mano por favor.

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Private Sub btnActualizar_Click(sender As Object, e As EventArgs) Handles btnActualizar.Click
        Dim ConsultaActualizar As String
        Try
            ConsultaActualizar = "UPDATE Alumnos SET Libro1 ='" & CInt(txtLibro1.Text) & "', Libro2 ='" & CInt(txtLibro2.Text) & "', LibroConsulta ='" & CInt(txtConsulta.Text) & "WHERE NSocio ='" & CInt(txtNSocio.Text) & "'"
            comandos = New OleDb.OleDbCommand(ConsultaActualizar, conexion)
            comandos.ExecuteNonQuery()
            MsgBox("El registro se actualizo joya", vbInformation, "Golazo")
            ' Limpio todo
            txtApellido.Clear()
            txtConsulta.Clear()
            txtLibro1.Clear()
            txtLibro2.Clear()
            txtConsulta.Clear()
            txtNombre.Clear()
            txtApellido.Clear()
            txtNSocio.Clear()
            chkAndadores.Checked = False
            chkBaston.Checked = False
            chkColchonetas.Checked = False
            chkHuesos.Checked = False
            chkMate.Checked = False
            chkMuletas.Checked = False
            chkSilla.Checked = False
            chkTermo.Checked = False
            chkVajilla.Checked = False
 
            'Ahora lo inhabilito
            txtApellido.Enabled = False
            txtConsulta.Enabled = False
            txtLibro1.Enabled = False
            txtLibro2.Enabled = False
            txtNombre.Enabled = False
            txtNSocio.Enabled = False
            chkAndadores.Enabled = False
            chkBaston.Enabled = False
            chkColchonetas.Enabled = False
            chkHuesos.Enabled = False
            chkMate.Enabled = False
            chkMuletas.Enabled = False
            chkSilla.Enabled = False
            chkTermo.Enabled = False
            chkVajilla.Enabled = False
            btnActualizar.Enabled = False
            btnModificar.Enabled = False
 
        Catch ex As Exception
            MsgBox("Algo anda mal", vbExclamation, "Error")
 
        End Try
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

Problema con boton actualizar

Publicado por Javier (2 intervenciones) el 14/04/2016 10:00:02
Te doy un consejo que a mi me suele ayudar bastante, antes de realizar el executenonquery, copia el contenido de la variable ConsultaActualizar y utilizala en un gestor de sql, como por ejemplo heidisql o el propio de microsoft.

Ejecuta la consulta, como norma general te dira donde esta el fallo y normalmente igual hasta te das cuenta tu mismo donde esta el fallo. Muchas veces nos comemos alguna comilla o coma y no nos damos cuenta al generar la consulta mediante codigo. Por eso yo siempre realizo la consulta en sql para ver que realmente me esta devolviendo los valores que le estoy pidiendo.

Un saludo
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 Wilfredo Patricio Castillo

Problema con boton actualizar

Ese es el problema por hacer esas concatenaciones y muy a parte de confundirte, es una puerta abierta para que inyecten código.

Prueba de esta manera, está listo para copiar y pegar.

1
2
3
4
5
6
7
8
9
10
11
12
13
comandos.Comantext="UPDATE Alumnos Set Libro1=@Libro1,Libro2=@Libro2,LibroConsulta=@LibriConsulta Where NSocio=@Socio"
comandos.CommandType=CommandType.Text
comando.Connection=Conexion
comando.Parameters.Add("@Libro1",OleDbType.Integer).Value=Convert.ToInt32(txtLibro1.text)
comando.Parameters.Add("@Libro2",OleDbType.Integer).Value=Convert.ToInt32(txtLibro2.text)
comando.Parameters.Add("@LibroConsulta",OleDbType.Integer).Value=Convert.ToInt32(txtConsulta.text)
comando.Parameters.Add("@Socio",OleDbType.Integer).Value=Convert.ToInt32(txtNSocio.text)
dim Correcto as Integer=comando.ExecuteNonQuery
if correcto>0 then
	MessageBox.Show("El registro se actualizo joya","Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
else
	MessageBox.Show("No se guardaron los datos", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Error)
endif


Espero te sirva.

Saludos cordiales,
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