none
obtener el valor de un campo de una base de datos. RRS feed

  • Pregunta

  • Hola voy a tratar de explicarme lo mas posible necesito que cuando un combo cambia de valor el procedimiento almacenado en la base de dato me setee en un textbox un valor ya tengo todo echo lo unico es que no puedo o en realidad no se como obtener ese valor el procedimiento almacenado que tengo es este:

    --este procedimiento va a mostrar y setear en el text box el numero inicial del nuerador 
    create procedure sp_codigo_numerador
    @idabuscar int
    as 
    select numero_inicio from codigo_numeracion
    where idCodigoNumeracion=@idabuscar
    go
    

    funciona bien y me trae el valor que necesito desde c# en la capa de datos setie esto :

     public int Mostrar_Numero_Inicio(DDefinirParametros DDefinirParametros)
            {
                //respuesta
                int rpta ;
    
                SqlConnection SqlCon = new SqlConnection();
                try
                {
                    SqlCon.ConnectionString = Conexion.Cn;
                    SqlCon.Open();
                    SqlCommand SqlCmd = new SqlCommand();
                    SqlCmd.Connection = SqlCon;
                    SqlCmd.CommandText = "sp_codigo_numerador";//select en los procedimientos almacenados 
                    SqlCmd.CommandType = CommandType.StoredProcedure;
    
                    SqlParameter ParIdaBuscar = new SqlParameter();
                    ParIdaBuscar.ParameterName = "@idabuscar";
                    ParIdaBuscar.SqlDbType = SqlDbType.Int;
                    ParIdaBuscar.Value = DDefinirParametros.Codigo_relacion_numerico;
                    SqlCmd.Parameters.Add(ParIdaBuscar);
    
                    rpta = Convert.ToInt32(SqlCmd.ExecuteReader());//supuestamente esto me tiene que devolver el valor 
                }
                catch (Exception ex)
                {
                    
                    rpta=11;
                    
                }
                //finally se va a ejecutar independientemente de lo que pase en el try & catch 
                finally
                {
                    //con este if vamos a cerrar la coneccion si esta abierta ConectionState devuelve el estado de la coneccion 
                    if ((SqlCon.State == ConnectionState.Open))
                    {
                        SqlCon.Close();
                    }
    
                }
                return rpta;
            }

    lo unico que me falta es poder acceder al valor que me da el procedimiento pero no se como hacerlo cuando ejecuto el programa usando SqlDataReader() el programa me setea en el textBox el valor del catch. 

    pero para probar si estaba bien lo del try tire un ExecuteNonQuery() para ver que me retornaba y me retorna en el TextBox un -1 osea que estafuncionando bien el procedimiento y la conexion lo que no se hacer es poder recibir ese dato y ponerlo en la variable rpta. Gracias Saludos.

    viernes, 1 de septiembre de 2017 16:06

Respuestas