Foros del Web » Programación para mayores de 30 ;) » .NET »

Obtener datos Store procedure desde vb.net 2010

Estas en el tema de Obtener datos Store procedure desde vb.net 2010 en el foro de .NET en Foros del Web. Buenas tardes creo este tema para ver si me pueden ayudar con un problemita estoy desarrollando un sistema el cual debo obtener datos desde una ...
  #1 (permalink)  
Antiguo 04/09/2012, 11:54
Avatar de jimylu  
Fecha de Ingreso: noviembre-2006
Ubicación: Perú
Mensajes: 274
Antigüedad: 18 años
Puntos: 5
Pregunta Obtener datos Store procedure desde vb.net 2010

Buenas tardes creo este tema para ver si me pueden ayudar con un problemita estoy desarrollando un sistema el cual debo obtener datos desde una base de datos mysql REMOTO el problema es que no soy un usuario muy avanzado en este tema realice lo siguiente.

Código:
    Public Sub Store(ByVal strNombre As String)
        Try
            Dim dr As MySqlDataReader
            Dim comm As New MySqlCommand(strNombre, conexion)
            comm.CommandType = CommandType.StoredProcedure
            Dim da As New MySqlDataAdapter(comm)
            Dim ds As New DataSet
            dr = comm.ExecuteReader
            Do While dr.Read
                MsgBox(dr("campo a mostrar"))
            Loop

        Catch ex As MySqlException
            MessageBox.Show(ex.Message)
        End Try

    End Sub
ya estan activados las librerias de mysql y ya esta realizada la conexion no los realizo con odbc satisfactoriamente el tema solo es los store procedure tanto los que me piden datos como los que no.


Ahora tambien queria consultarles como obtener el dato de una columna especifica y no toda la data que me arroja el store procedure lo digo esto para manejar los datos mas ordenadamente.

Nota: no tengo acceso a los store procedure ya que los obtengo remotamente con usuario y clave pero esta limitado ese acceso al uso exclusivo de los store procedure.
Ya eh probado los accesos y los store procedure desde un administrador de mysql y todo esta ok.
__________________
Espero haberte sido de ayuda. :D
www.jminformatics.com
  #2 (permalink)  
Antiguo 04/09/2012, 12:42
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 8 meses
Puntos: 61
Respuesta: Obtener datos Store procedure desde vb.net 2010

Pues casi lo tienes hecho solo que te faltan algunas cosas por ejemplo no necesitas el while lo podes hacer con un if.

Código vb.net:
Ver original
  1. Public Sub Store(ByVal strNombre As String)
  2.         Try
  3.             Dim dr As MySqlDataReader
  4.             Dim comm As New MySqlCommand(strNombre, conexion)
  5.             comm.CommandType = CommandType.StoredProcedure
  6.             Dim da As New MySqlDataAdapter(comm)
  7.             cnn.Open()
  8.             dr = comm.ExecuteReader
  9.             If dr.Read() Then
  10.                 MsgBox(dr("campo a mostrar").ToString())
  11.             End If
  12.  
  13.         Catch ex As MySqlException
  14.             MessageBox.Show(ex.Message)
  15.         End Try
  16.  
  17.     End Sub
Donde dice nombre a mostrar iría el nombre del campo que quieres mostrar.

Saludos.
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres
  #3 (permalink)  
Antiguo 04/09/2012, 13:51
Avatar de jimylu  
Fecha de Ingreso: noviembre-2006
Ubicación: Perú
Mensajes: 274
Antigüedad: 18 años
Puntos: 5
Respuesta: Obtener datos Store procedure desde vb.net 2010

hola gracias por responder pero lo ejecuto y me arroja error: "Unable to retrieve stored procedure metadata for routine 'sp_PendingOrders'. Either grant SELECT privilege to mysql.proc for this user or use "check parameters=false" with your connection string." al parecer algun problema con la conexion que ponga un parametro en false pero nose cual ? este es el codigo de mi conexion lo utilizo como funcion lo eh logrado testear y establece la conexion satisfactoriamente:

Código:
    Public Sub Conexion_Mysql_Remote(ByVal strServidor As String, ByVal strPuerto As String, ByVal strBD As String, ByVal strUsuario As String, ByVal strPwd As String)
        Dim strCadena As String
        strCadena = "Server=" & strServidor & ";Port=" & strPuerto & ";database=" & strBD & ";Uid=" & strUsuario & ";Pwd=" & strPwd & ";"
        cn_Mysql_Rem = New MySqlConnection(strCadena)
        Try
            cn_Mysql_Rem.Open()
        Catch ex As MySqlException
            MessageBox.Show(ex.Message, "Error de Conexion", MessageBoxButtons.OK, MessageBoxIcon.Error)
            cn_Mysql_Rem = Nothing
        End Try
    End Sub
otra cosa en tu codigo me agregastes la linea cnn.open() supongo que es para abrir la conexion a la base de datos pero la conexion ya la tengo abierta si coloco esa linea que pusistes me arrojaria error, el while lo usaba ya que me bota una lista de registros y no uno solo es decir por ejm 5 registros.

Agradesco su ayuda de antemano
__________________
Espero haberte sido de ayuda. :D
www.jminformatics.com
  #4 (permalink)  
Antiguo 04/09/2012, 15:24
Avatar de cristiantorres  
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 8 meses
Puntos: 61
Respuesta: Obtener datos Store procedure desde vb.net 2010

Al parecer son problemas de privilegios con el usuario que estas usando para conectarte a la bd.
http://bugs.mysql.com/bug.php?id=48007
http://dotnetfish.blogspot.com/2011/...procedure.html

Y si en el codigo puse el cnn.open() para abrir la conexion y entonces también usa el si son varios datos while.
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres
  #5 (permalink)  
Antiguo 04/09/2012, 15:37
Avatar de jimylu  
Fecha de Ingreso: noviembre-2006
Ubicación: Perú
Mensajes: 274
Antigüedad: 18 años
Puntos: 5
Respuesta: Obtener datos Store procedure desde vb.net 2010

pero es extraño ya que con los mismos accesos entro mediante el administrador de mysql ejecutando la llamada al mismo store procedure y se ejecuta con normalidad solo me arroja ese error desde el vb.net
__________________
Espero haberte sido de ayuda. :D
www.jminformatics.com
  #6 (permalink)  
Antiguo 05/09/2012, 08:57
Avatar de jimylu  
Fecha de Ingreso: noviembre-2006
Ubicación: Perú
Mensajes: 274
Antigüedad: 18 años
Puntos: 5
Respuesta: Obtener datos Store procedure desde vb.net 2010

lo llegue a solucionar al codigo de conexion le agregue el parametro check parameters=false

Código:
Public Sub Conexion_Mysql_Remote(ByVal strServidor As String, ByVal strPuerto As String, ByVal strBD As String, ByVal strUsuario As String, ByVal strPwd As String)
        Dim strCadena As String
        strCadena = "Server=" & strServidor & ";Port=" & strPuerto & ";database=" & strBD & ";Uid=" & strUsuario & ";Pwd=" & strPwd & ";check parameters=false"
        cn_Mysql_Rem = New MySqlConnection(strCadena)
        Try
            cn_Mysql_Rem.Open()
        Catch ex As MySqlException
            MessageBox.Show(ex.Message, "Error de Conexion", MessageBoxButtons.OK, MessageBoxIcon.Error)
            cn_Mysql_Rem = Nothing
        End Try
    End Sub
lo dejo ahi por si es que a alguien le presenta el problema :D
__________________
Espero haberte sido de ayuda. :D
www.jminformatics.com
  #7 (permalink)  
Antiguo 05/09/2012, 12:45
 
Fecha de Ingreso: junio-2012
Mensajes: 90
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: Obtener datos Store procedure desde vb.net 2010

Hola, mira asi mando llamar yo mis ST's

Código:
Dim cmd As New SqlCommand("doppingsort", cnn) <--Stored Procedure
            cmd.CommandType = CommandType.StoredProcedure

            cmd.Connection.Open()
            cmd.Parameters.AddWithValue("@L", 1)
            cmd.Parameters.AddWithValue("@U", 5)

            Using sdr As SqlDataReader = cmd.ExecuteReader()
                While sdr.Read()
                    table.AddCell(sdr(0).ToString())
                    table.AddCell(sdr(1).ToString())
                    table.AddCell(sdr(2).ToString())
                    table.AddCell(sdr(3).ToString())
                    table.AddCell(sdr(4).ToString())
                    Insertar()
                End While
                sdr.Close()
            End Using
            cmd.Connection.Close()

Etiquetas: mysql, procedure, sql, store
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:28.