domingo, 26 de agosto de 2018

 

consulta de datos con filtro entre fecha asp net c# visual estudio 2019

Hola gente vengo otra vez ,con un  nuevo post de como hacer consultas de datos con filtros. Este este ejercicio haremos en asp .net  y un poco de bootstrap .














Primeramente creamos nuestro base de datos en sql server  cualquier version..

script:
--creamos base datos

create database videotutoriales
use videotutoriales



--creamos las tablas
CREATE TABLE [dbo].[Factura](
       [Nro_Factura] [char](10) NOT NULL,
       [fecha] [datetime] NULL,
       [cliente] [varchar](50) NULL,
       [producto] [varchar](50) NULL,
       [total] [decimal](10, 2) NULL,
 CONSTRAINT [PK_Factura] PRIMARY KEY CLUSTERED
(
       [Nro_Factura] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO


tambien necesitaremos un procedimiento almacenado, para hacer nuestra busqueda por fecha.

-- procedimiento almacenado


create procedure [dbo].[buscarfecha]
@fecha datetime
As 
select *from Factura where fecha=@fecha
GO
 Bueno hasta ahi tenemos la base de datos y procedimientros almacenados.
Ahora diseñamos nuestro formulario en asp net.

script de diseño.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="reporte_por_fechas_facturas.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Practicas con fechas  cpiprodesign.com</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous" />
</head>
<body>
    <form id="form1" runat="server">
        <div class="container mt-2">
            <div>
                <asp:Label ID="Label1" runat="server" Text="Criterio de Busqueda"></asp:Label>
                <asp:TextBox ID="TextBox2" placeholder="Ingrese una fecha" runat="server"></asp:TextBox>
                <asp:Button ID="Button3" CssClass="btn btn-danger" runat="server" Text="Buscar" OnClick="Button1_Click" />
            </div>
            <br />
            <asp:Calendar ID="Calendar2" runat="server" OnSelectionChanged="Calendar1_SelectionChanged"></asp:Calendar>
            <br />
            <div>
                <asp:Button ID="Button4" CssClass="btn btn-primary" runat="server" Text="CargarTodos" OnClick="Button2_Click" />
            </div>
            <br />
            <div>
                <asp:GridView ID="GridView2" runat="server"></asp:GridView>
            </div>
            <div>
        </div>
            <br />
        <br />
        <div>
        </div>
            <br />
        <div>
        </div>
        </div>
       
    </form>
</body>
</html>

El resultado seria lo siguiente.












Hasta ahi tenemos el diseño .Pero nos falta programar para que funcione..
 vamos a programarlo.
codigos en c#
 // importamos las libreria a utilizar

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;

namespace reporte_por_fechas_facturas
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        SqlConnection cn = new SqlConnection("Data Source=tu_coneecion.local;Initial Catalog=videotutoriales;Integrated Security=True");

        protected void Page_Load(object sender, EventArgs e)
        {

        }
      
        protected void Button1_Click(object sender, EventArgs e)
        {
            filtrar();
        }
        //codigo para filtrar registros por fechas
        private void filtrar()
        {                  
             SqlDataAdapter da = new SqlDataAdapter("buscarfecha",cn);
            da.SelectCommand.CommandType = CommandType.StoredProcedure;
            da.SelectCommand.Parameters.Add("@fecha",SqlDbType.DateTime).Value=Convert.ToDateTime(TextBox2.Text);

            DataTable dt = new DataTable();
            da.Fill(dt);
            this.GridView2.DataSource = dt;
            GridView2.DataBind();
        }

        protected void Calendar1_SelectionChanged(object sender, EventArgs e)
        {
            SqlDataAdapter da = new SqlDataAdapter("buscarfecha", cn);
            da.SelectCommand.CommandType = CommandType.StoredProcedure;
            da.SelectCommand.Parameters.Add("@fecha", SqlDbType.DateTime).Value = Convert.ToDateTime(Calendar2.SelectedDate);

            DataTable dt = new DataTable();
            da.Fill(dt);
            this.GridView2.DataSource = dt;
            GridView2.DataBind();

        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            //carga toodo los registros grabados
            SqlDataAdapter da = new SqlDataAdapter("select*from factura", cn);
            DataTable dt = new DataTable();
            da.Fill(dt);
            GridView2.DataSource = dt;
            GridView2.DataBind();

        }
    }
}

Eso seria todo espero ayudarles com este post..
comenta tus dudas y sugerencias.

Share: