Visual Basic.NET - Error con executeReader y executeNonQuery

   
Vista:

Error con executeReader y executeNonQuery

Publicado por lenin (3 intervenciones) el 21/08/2016 04:11:13
Hola como estan?
mi nombre es lenin Programa en Visual Basic.Net 2010 y queria preguntarles si hay alguna norma o parametro especifico para usar el ExecuteReader y el ExecuteNonQuery
pues les comento:


estoy haciendo lo que todos hacen al principio en programacion BUSCAR, ACTUALIZAR, INSERTAR, ELIMINAR
hasta el momento tengo BUSCAR e INSERTAR y me ejecuta sin errores, el problema comenzo cuando termine de crear el boton ACTUALIZAR pues a mi parecer el codigo esta bien, mas al ejecutarlo y darle Click al boton, no me ejecuta ningun cambio en mi base de datos

mi boton insertar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub Button3_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button3.Click
        Try
            'BOTON REGISTRO DE DATOS 
 
            Dim coneccion As New OdbcConnection("MI CONEXION")
 
            coneccion.Open()
            Dim consulta As String = "INSERT INTO datos(uid,nombre,nivel,referencia)VALUES('" & TextBox1.Text & "', '" & TextBox2.Text & "', '" & TextBox3.Text & "', '" & TextBox4.Text & "')"
            Dim comando = New OdbcCommand(consulta, coneccion)
 
            lector = comando.ExecuteReader
            lector.Close()
 
            MsgBox("registro guardado con exito", MsgBoxStyle.Information, "EXITO")
 
        Catch ex As Exception
            MsgBox("ERROR AL GUARDAR REGISTRO")
 
        End Try
 
 
    End Sub




Y ESTE ES MI BOTON ACTUALIZAR


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
 
 
 
        Dim consultaupdate As String
 
 
        Try
            consultaupdate = "UPDATE datos set uid = '" & TextBox1.Text & "', nombre = '" & TextBox2.Text & "', nivel= '" & TextBox3.Text & "', referencia = '" & TextBox4.Text & "'"
            comando = New OdbcCommand(consultaupdate, coneccion)
            comando.ExecuteNonQuery()
            MsgBox("actualizado", MsgBoxStyle.Information, "exito")
 
            'vaciar los campos
            TextBox1.Clear()
            TextBox2.Clear()
            TextBox3.Clear()
            TextBox4.Clear()
            TextBox1.Focus()
 
        Catch ex As Exception
 
        End Try



PORFAVOR ayudenme tal vez la solucion sea obvia pero soy nuevo en programacion y pues ahi voy gracias de antemano!!!
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

Error con executeReader y executeNonQuery

Publicado por omar pcc.nett.2018@hotmail.com (151 intervenciones) el 21/08/2016 15:06:20
si tienes anydesk para ayudarte en tu codificacion

anydesk es para realizar trabajos de pc a pc

podria corregir tu codigo
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

Error con executeReader y executeNonQuery

Publicado por Miguel (346 intervenciones) el 21/08/2016 16:46:28
Hola,
A tu comando actualizar la hace falta la parte del "WHERE", que en este caso se utiliza para especificar las filas a modificar, ya que como está ahora modificaría todas las filas de tu tabla 'datos'. El 'ExecuteNonQuery' se utiliza cuando quieres ejecutar un comando pero sin devolver datos (Insert, Update, Delete, entre otros), y el 'ExecuteReader' es para cuando deseas retornar algún dato (filas de una tabla, realizar búsquedas, etc).

Saludos
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

Error con executeReader y executeNonQuery

Publicado por Lenin (3 intervenciones) el 21/08/2016 19:16:39
Gracias por las respuestas pero anoche exactamente use el codigo de mi boton actualizar en un formulario solo con ese y el boton buscar y me modifico normalmente en pocas palabras funciono el codigo de modificar mas cuando lo pruebo con el boton insertar el boton actualizar no funciona por esto doy por echo de que el error o discrepancia esta en mis botones insertar y modificar ya q en insertar uso el ExecuteReader y en modificar uso el ExecuteNonQuery... Mi intencion es actualizar todos mis datos en la tabla q tengo mas no creo q mi sentencia Update esta mal si alguno probara y me ayudara lo agradeceria pues ya eh intentado usando where para modificar un campo de la tabla en especifico y aun asi no me modifica nada! :(
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

Error con executeReader y executeNonQuery

Publicado por Diego (29 intervenciones) el 22/08/2016 20:04:00
Hola Lenin, en el primer bloque de codigo donde utilizas :

1
2
3
4
5
6
7
8
Dim coneccion As New OdbcConnection("MI CONEXION")
 
coneccion.Open()
Dim consulta As String = "INSERT INTO datos(uid,nombre,nivel,referencia)VALUES('" & TextBox1.Text & "', '" & TextBox2.Text & "', '" & TextBox3.Text & "', '" & TextBox4.Text & "')"
Dim comando = New OdbcCommand(consulta, coneccion)
 
lector = comando.ExecuteReader
lector.Close()

Deberías utilizar, solamente para insertar el registro y deberías cerrar la conexion con coneccion.close()

1
2
comando.executeNonQuery()
coneccion.close()

Siguiendo con el codigo:

1
2
3
4
consultaupdate = "UPDATE datos set uid = '" & TextBox1.Text & "', nombre = '" & TextBox2.Text & "', nivel= '" & TextBox3.Text & "', referencia = '" & TextBox4.Text & "'"
comando = New OdbcCommand(consultaupdate, coneccion)
comando.ExecuteNonQuery()
MsgBox("actualizado", MsgBoxStyle.Information, "exito")

Te faltaría definir nuevamente la coneccion, abrirla y cerrarla al final del bloque, asi:

1
2
3
4
5
6
7
8
dim coneccion as new odbcConnection("MI CONEXION")
 
coneccion.open()
consultaupdate = "UPDATE datos set uid = '" & TextBox1.Text & "', nombre = '" & TextBox2.Text & "', nivel= '" & TextBox3.Text & "', referencia = '" & TextBox4.Text & "'"
comando = New OdbcCommand(consultaupdate, coneccion)
comando.ExecuteNonQuery()
MsgBox("actualizado", MsgBoxStyle.Information, "exito")
coneccion.close()

No te recomiendo que dejes abierta la conexión a la DB si no la necesitas.
Te sugiero tambien, el objeto coneccion, declararlo publico en un modulo. O al menos private en las declaraciones de tu form .

Saludos y +bytes.
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

Error con executeReader y executeNonQuery

Publicado por Lenin (3 intervenciones) el 23/08/2016 14:11:22
Hola Diego gracias por la respuesta voy a probar con los .Close() a ver si me soluciona el inconveniente con el boton Gracias (Y)
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