none
tengo esta funicon de mysql pero no se como tomar el valor q me retorna en .net RRS feed

  • Pregunta

  • hola tengo esta funcion en mysql la cual toma el numero maximo segun el CODIGO Y EL nombre en  la tabla table me funciona perfecto.

     

    BEGIN
    	declare _value MEDIUMINT;
      select coalesce(max(NUMERO),0) into _value from `TABLE` where CODIGO=_codi and nombre=_nom;
      return _value;
    END
    

     

    pero no se como ejecutar las funciones de mysql desde vb.net enviadole los parametros del codigo y el nombre

     

    y luego tomar el valor que me retorna  (_value)

     

    no se absolutamente nada de como hacerlo, por fa ayuda estoy aprendiendo

     

     

    Gracias de antemano.

    miércoles, 11 de mayo de 2011 0:11

Respuestas

  • --

    Sergio Andres R dice,

    da.Fill(ds)

    No se ha inicializado la propiedad SelectCommand antes de llamar a 'Fill'.

    --

    Es cierto Andres olvide inicializar esta propiedad, seria algo como esto

    Public Shared Function LeeRelacion1(ByVal argument1 As String, ByVal argument2 As String) As DataSet
    
    	Using connection As New SqlConnection("Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;")
    
    		Using command As New SqlCommand("Funcion", connection)
    			command.CommandType = CommandType.StoredProcedure
    
          command.Parameters.AddWithValue("@codigo", argument1)
          command.Parameters.AddWithValue("@nombre", argument2)
    
    			Dim ds As New DataSet()
    
    			Dim da As New SqlDataAdapter()
    
    			da.SelectCommand = command
    
    			Try
    				connection.Open()
    				da.Fill(ds)
    			Finally
    				connection.Close()
    			End Try
    			Return ds
    		End Using
    	End Using
    End Function
    

    ejemplo para llamarla

    Datagridview.Datasource = LeeRelacion1(Textbox1.Text, Textbox2.Text);

     


    Angel R. Jimenez G.
    Software Development
    Santo Domingo
    Republica Dominicana

    domingo, 15 de mayo de 2011 17:22

Todas las respuestas

  • Connection strings for MySQL

    Accediendo a BD MySQL desde Visual Studio

    Puede crear una fumcion o rutina que retorne un dataset o una tabla, ejemplo

    C#

    public static DataSet LeeRelacion1(string argument1, string argument2)
        {
          #region DataSet
          using (SqlConnection connection = new SqlConnection("Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;"))
          {
            //String query = "SELECT ColumName FROM TableName WHERE ColumnName LIKE @ParameterName";
    
            using (SqlCommand command = new SqlCommand("FunctionName", connection))
            {
              command.CommandType = CommandType.StoredProcedure;
    
              command.Parameters.AddWithValue("@Codigo", argument1);
              command.Parameters.AddWithValue("@Nombre", argument2);
    
              DataSet ds = new DataSet();
    
              SqlDataAdapter da = new SqlDataAdapter();
    
              try
              {
                connection.Open();
                da.Fill(ds);
              }
              finally
              {
                connection.Close();
              }
              return ds;
            }
          }
          #endregion
        }

    VB

    Public Shared Function LeeRelacion1(argument1 As String, argument2 As String) As DataSet
    	'#Region "DataSet"
    	Using connection As New SqlConnection("Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;")
    		'String query = "SELECT ColumName FROM TableName WHERE ColumnName LIKE @ParameterName";
    
    		Using command As New SqlCommand("FunctionName", connection)
    			command.CommandType = CommandType.StoredProcedure
    
    			command.Parameters.AddWithValue("@Codigo", argument1)
    			command.Parameters.AddWithValue("@Nombre", argument2)
    
    			Dim ds As New DataSet()
    
    			Dim da As New SqlDataAdapter()
    
    			Try
    				connection.Open()
    				da.Fill(ds)
    			Finally
    				connection.Close()
    			End Try
    			Return ds
    		End Using
    	End Using
    	'#End Region
    End Function
    

    ejemplo para llamarla

    Datagridview.Datasource = LeeRelacion1(Textbox1.Text, Textbox2.Text);

     

     


    Angel R. Jimenez G.
    Software Development
    Santo Domingo
    Republica Dominicana
    miércoles, 11 de mayo de 2011 3:05
  • Gracias pero me arroja este error en la linea

    da.Fill(ds)
    

    No se ha inicializado la propiedad SelectCommand antes de llamar a 'Fill'.

    ak esta el codigo con las modificaciones hechas

     

    Imports MySql.Data.MySqlClient
    
    Public Shared Function LeeRelacion1(ByVal argument1 As String, ByVal argument2 As String) As DataSet
        '#Region "DataSet"
        Using connection As New MySqlConnection(("Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;"))
          'String query = "SELECT ColumName FROM TableName WHERE ColumnName LIKE @ParameterName";
    
          Using command As New MySqlCommand("Funcion", connection)
            command.CommandType = CommandType.StoredProcedure
    
            command.Parameters.AddWithValue("@codigo", argument1)
            command.Parameters.AddWithValue("@nombre", argument2)
    
            Dim ds As New DataSet
    
            Dim da As New MySqlDataAdapter
            Try
              connection.Open()
              da.Fill(ds)
            Finally
              connection.Close()
            End Try
            Return ds
          End Using
        End Using
        '#End Region
      End Function
    

    que debo hacer o me hace falta gracias.

     

    Gracias de antemano.

    miércoles, 11 de mayo de 2011 20:35
  • ahora lo e intentado asi pero me envia siempre cero 0 por fa ayuda

     Dim cnn As New MySqlConnection("server=192.168.1.1;User Id=usuario;database=dbp;password=123;Persist Security Info=True")
        cnn.Open()
        Dim comest = New MySqlCommand
        comest.CommandText = "NUMERO_CONSECUTIVO"
        comest.CommandType = CommandType.StoredProcedure
        comest.Parameters.Add("?_nombre", MySqlDbType.Int64)
        comest.Parameters("?_nombre").Value = CInt(1)
        comest.Parameters.Add("?_codigo", MySqlDbType.Int64)
        comest.Parameters("?_codigo").Value = CInt(2)
        comest.Connection = cnn
        Dim s As Integer = comest.ExecuteScalar()
    

     

     

     

    por fa ayuda

     

    Gracias de antemano

    miércoles, 11 de mayo de 2011 22:49
  • hola

    te envia cero porque seguramente para los datos de filtro que usas no hay registros

    prueba de asignar a los parametros valores que sabes hay registra que devuelva como resultado

    imagino ademas has modificado el stored

    select coalesce(max(NUMERO),0) into _value from `TABLE` where CODIGO=_codi and nombre=_nom;

    porque alli no usas los parametro de filtro, o sea el ?

    where CODIGO= ?codi and nombre= ?nom;

     

    note que antes usabas el AddWithValue() pero despeus dejaste de usarlo, eso porque fue ?

    antres intentabas acceder a una funcion, pero nos e puede acceder directa debes ahcer un SELECT que use la funciona para tomar el valor

    pero si podrias crear un stored procedure

    Stored Procedures

    veras alli como se defineen parametro de entrada con el IN

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 12 de mayo de 2011 4:39
  • hola no es un store procedure es una funcion mysql ,e buscado por todas partes pero no he encontrado nada que me funcione , sera que alguien se apiada de mi y sube algun proyecto de ejemplo en el cual se utilice el envio de mas de un parametro a una funcion y tome el valor q retorne

     

     

    Gracias.

    jueves, 12 de mayo de 2011 13:34
  • --

    Sergio Andres R dice,

    da.Fill(ds)

    No se ha inicializado la propiedad SelectCommand antes de llamar a 'Fill'.

    --

    Es cierto Andres olvide inicializar esta propiedad, seria algo como esto

    Public Shared Function LeeRelacion1(ByVal argument1 As String, ByVal argument2 As String) As DataSet
    
    	Using connection As New SqlConnection("Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;")
    
    		Using command As New SqlCommand("Funcion", connection)
    			command.CommandType = CommandType.StoredProcedure
    
          command.Parameters.AddWithValue("@codigo", argument1)
          command.Parameters.AddWithValue("@nombre", argument2)
    
    			Dim ds As New DataSet()
    
    			Dim da As New SqlDataAdapter()
    
    			da.SelectCommand = command
    
    			Try
    				connection.Open()
    				da.Fill(ds)
    			Finally
    				connection.Close()
    			End Try
    			Return ds
    		End Using
    	End Using
    End Function
    

    ejemplo para llamarla

    Datagridview.Datasource = LeeRelacion1(Textbox1.Text, Textbox2.Text);

     


    Angel R. Jimenez G.
    Software Development
    Santo Domingo
    Republica Dominicana

    domingo, 15 de mayo de 2011 17:22