none
Mostrar en el DataGridView consulta por stored procedure RRS feed

  • Pregunta

  • Buena tarde amigos

    Quiero integrar a Visual 2010 esta consulta Stored Procedure y la muestre el DataGridView, deibiendo hacer un filtrado por apellido y fecha inicial y final, este es mi SP

    select * from dbo.Users inner join dbo.Records on dbo.Users.UserId = dbo.Records.UserId where LastName= @LastName   
    AND CheckTime between @FechaInicial AND @FechaFinal ORDER BY CheckTime
     

    martes, 13 de septiembre de 2016 19:10

Todas las respuestas

  • Hola JAVs76,

    Qué lenguaje estás usando C# o Vb.net ?

    De dónde vas a obtener los valores para hacer el filtro (qué controles) ? Usas el DateTimePicker para capturar la fecha?

    Por cierto consultas fecha y hora ?

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    martes, 13 de septiembre de 2016 19:27
  • JAVs76,

    El procedimiento almacenado debería tener la siguiente forma:

    CREATE PROCEDURE dbo.MiProcedimiento
        @LastName nvarchar(100),
        @FechaInicial date,
        @FechaFinal date
    AS
    BEGIN
        SELECT 
    	   * 
        FROM 
    	   dbo.Users 
    	   INNER JOIN dbo.Records ON dbo.Users.UserId = dbo.Records.UserId 
        WHERE 
    	   LastName = @LastName   
    	   AND CheckTime between @FechaInicial AND @FechaFinal 
        ORDER BY 
    	   CheckTime
    END

    ¿La columna 'CheckTime' es de tipo date o alguna variante de datetime? Lo pregunto para discriminar la parte de tiempo, en el ejemplo asumo que es de tipo date.

    Ya que no indicas el lenguaje de programación que ocupas el ejemplo de acceso a datos lo realizare con c#:

    using (SqlConnection cn = new SqlConnection("<Colocar cadena de conexión>"))
    {
    	//Abrir conexión
    	cn.Open();
    
    	//Crear una instancia de la clase SqlCommand
    	SqlCommand cmd = new SqlCommand("MiProcedimiento", cn);
    
    	//Indicar que el tipo de comando a ejecutar es un procediento almacenado
    	cmd.CommandType = CommandType.StoredProcedure;
    
    	//Agregar valores de parámetros a la colección Parameters del objeto SqlCommand
    	cmd.Parameters.AddWithValue("@LastName", textBox1.Text);
    	cmd.Parameters.Add("@FechaInicial", SqlDbType.Date).Value = dtpFechaInicial.Value;
    	cmd.Parameters.Add("@FechaFinal", SqlDbType.Date).Value = dtpFechaFinal.Value;
    
    	SqlDataAdapter da = new SqlDataAdapter(cmd);
    
    	DataTable dt = new DataTable();
    
    	//Rellenar el objeto DataTable con el resultado de la consulta sql
    	da.Fill(dt);
    
    	//Vincular una fuenta de datos con el objeto DataGridView
    	dgvCabeceraVentas.DataSource = dt;
    }



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    martes, 13 de septiembre de 2016 21:31
  • hola

    el codigo podria ser

    DataTabla dt = new DataTable(); 
    using (SqlConnection conn = new SqlConnection("connectionstring")) 
    { 
        SqlCommand cmd = new SqlCommand("<storedprocedure>", conn); 
        cmd.CommandType = SqlCommandType.StoredProcedure; 
       
        cmd.Parameters.AddWithValue("@LastName ", txtLastName.Text);
        cmd.Parameters.AddWithValue("@FechaInicial ", DatePickerInicial.Value); 
        cmd.Parameters.AddWithValue("@FechaFinal ", DatePickerFinal.Value); 
         
        SqlDataAdapter da = new SqlDataAdapter(cmd); 
        da.Fill(dt); 
    }
    
    DataGridView1.DataSource = dt;

    la idea es que los parametros los asignes respectando el tipo de dato, para las fechas usa el control DateTimePicker

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 13 de septiembre de 2016 21:40