Visual Basic.NET - asignar valores a variables en mysql desde visusal .net

 
Vista:
sin imagen de perfil

asignar valores a variables en mysql desde visusal .net

Publicado por cristian (3 intervenciones) el 14/04/2015 22:19:04
Hola a todos:

Mi problema es que estoy chequeando un valor si se encuentra en la base de datos y lo hago a traves de un procedimiento almacenado con una consulta y el resultado de esta consulta la asigno a una variable . El problema es que no me esta dando resultado. Siempre me devuelve nulo.



codigo en mysql:

CREATE DEFINER=`root`@`localhost` PROCEDURE `chequeo_numero_reporte`(in reporte varchar(20), out numero varchar(20), in cliente varchar(20))
BEGIN
set @numero=(select cui_bch from reportes where numero_reporte = @reporte and nombre_empresa = @cliente);

END

codigo en visual .net:

Public Sub chequeo_numero_reporte()
Dim cliente, reporte As String

cliente = ""
reporte = ""
cliente = Form3.ComboBox1.Text
reporte = Form3.TextBox1.Text

If Form3.TextBox1.Text <> "SOLICITUD" And Form3.TextBox1.Text <> "" Then
comando = New MySqlCommand
comando.Connection = conexion
comando.CommandText = "chequeo_numero_reporte"
comando.CommandType = CommandType.StoredProcedure
comando.Parameters.AddWithValue("?reporte", reporte)
comando.Parameters("?reporte").Direction = ParameterDirection.Input
comando.Parameters.AddWithValue("?cliente", cliente)
comando.Parameters("?cliente").Direction = ParameterDirection.Input
comando.Parameters.AddWithValue("?numero", MySqlDbType.String)
comando.Parameters("?numero").Direction = ParameterDirection.Output
comando.ExecuteNonQuery()

If Not IsDBNull(comando.Parameters("?numero").Value) Then
MsgBox("El numero de reporte ya existe", MsgBoxStyle.Exclamation, "Advertencia")
Form3.TextBox1.Text = ""
Form3.TextBox1.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
sin imagen de perfil

asignar valores a variables en mysql desde visusal .net

Publicado por Guillermo (42 intervenciones) el 15/04/2015 13:51:39
Hola Cristian!

Perdona mi ignorancia, pero es que no veo el Select por ninguna parte en tu codigo de visual basic! No lo usas?
Yo particularmente, eliminaría lo de 'comando.executenonquery()', y agregaría lo siguiente en su lugar

1
2
3
4
5
6
7
8
Dim dp As New MySqlDataAdapter(comando)
Dim dt As New DataTable 'creamos DT como nuevo espacio de memoria en forma de tabla maleable
dp.Fill(dt) 'llenamos DT con los registros obtenidos tras la busqueda del select
If dt.Rows.Count()>=1 then 'si tras la busqueda del Select, el recuento de registros de la base de datos es  =>1
     msgbox("Registro encontrado")
else 'si no es <=1 es que es =<0, por lo que no ha encontrado nada
     msgbox("Registro no encontrado")
end if

Quizás te de error la parte del codigo que incluye lo de MySqlDataAdapter, si te diese error, debes poner estas lineas al principio del todo del codigo (deben ser las primeras lineas del codigo):

1
2
Imports System.Data.Sql
Imports MySql.Data.MySqlClient

Y si aún así te sigue dando error, es que no tienes instalado el driver ODBC de PostgreSQL, que es un driver que introduce unas librerias de MySql en tu entorno de programación, que te hace mucho más facil la vida con las conexiones a las bases de datos MySql. Aquí tienes como instalarlo, y por cierto, muy bien explicado.
Yo la verdad, te recomiendo que las instales:

http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=517

Espero haberte ayudado
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

asignar valores a variables en mysql desde visusal .net

Publicado por cristian (3 intervenciones) el 15/04/2015 16:37:00
Gracias por la respuesta, pero sigo con el problema pienso yo que no estan llegando los datos al procedimiento en mysql o no se esta realizando como corresponde.
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