sábado, 16 de junio de 2012

Linq to DataSet

LINQ to DataSet facilita y acelera las consultas en datos almacenados en caché en un objeto DataSet.


Arquitectura de ADO.NET


El código de ADO.NET 2.0 existente continuará funcionando en una aplicación LINQ to DataSet. La relación de LINQ to DataSet con ADO.NET 2.0 y los datos almacenados se muestran en el diagrama siguiente.






Ejemplo


El siguiente ejemplo podremos ver como usar Ado .Net con linq.


1.) Crear un nuevo web site, file --> New web site..






2.) Agregaremos una pagina, clic derecho sobre solución explorer --> add new ítem






3.) En la pagina agregaremos un grid






4.) Agregue el siguiente código para llenar un grid utilizando Ado .net:


protected void Page_Load(object sender, EventArgs e)
    { 
        if (!Page.IsPostBack) 
        { 
            SqlConnection cn = new SqlConnection("Data Source=localhost;Initial Catalog=Northwind;User ID=sa;Password=P@ssw0rd"); 
            SqlDataAdapter da = new SqlDataAdapter("select * from products",cn); 
            DataSet ds = new DataSet(); 

            da.Fill(ds, "products"); 

            GridView1.DataSource = ds.Tables["products"]; 
            GridView1.DataBind(); 
        } 
    }




5.) Ahora agregaremos Linq al siguiente ejemplo


 if (!Page.IsPostBack) 
        { 
            SqlConnection cn = new SqlConnection("Data Source=xpcj;Initial Catalog=Northwind;User ID=sa;Password=P@ssw0rd"); 
            SqlDataAdapter da = new SqlDataAdapter("select * from products", cn); 
            DataSet ds = new DataSet(); 

            da.Fill(ds, "products"); 

            DataTable products = ds.Tables["products"]; 

            var query = 
             from p in products.AsEnumerable() 
             where p.Field<int>("CategoryId") == 1 
             orderby p.Field<string>("Productname") 
             select new 
             { 
                 codigo = p.Field<int>("ProductId"), 
                 nombre = p.Field<string>("Productname"), 
                 precio = p.Field<decimal>("Unitprice") 
             }; 



            GridView1.DataSource = query; 
            GridView1.DataBind(); 
        }








Ahora tenemos todo el poder LINQ en nuestro viejo y obsoleto ADO .Net

No hay comentarios.: