Mega Code Archive

 
Categories / ASP.Net Tutorial / ADO Net Database
 

Use Linq-to-DataSets to query against (typed) DataTables and DataSets using the LINQ syntax

<%@ Page Language="C#"           AutoEventWireup="true"           CodeFile="Default.aspx.cs"           Inherits="Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">     <title>Linq-to-DataSets</title> </head> <body>     <form id="form1" runat="server">         <div id="pageContent">             <asp:Button ID="Button1" runat="server" Text="First 10 Days of Jan98" onclick="Button1_Click" />             <asp:GridView ID="GridView1" runat="server">             </asp:GridView>             </div>     </form> </body> </html> File: Default.aspx.cs using System; using System.Data; using System.Data.SqlClient; using System.Collections; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Xml.Linq; public partial class Default : System.Web.UI.Page {     protected void Button1_Click(object sender, EventArgs e)     {         string connString = "SERVER=(local);DATABASE=northwind;Trusted_Connection=yes;";         string cmd = "SELECT * FROM customers;SELECT * FROM orders";         SqlDataAdapter adapter = new SqlDataAdapter(cmd, connString);         DataSet ds = new DataSet();         adapter.Fill(ds);         var customers = ds.Tables[0].AsEnumerable();         var orders = ds.Tables[1].AsEnumerable();         var data = from o in orders                    join c in customers                    on o.Field<string>("CustomerID") equals c.Field<string>("CustomerID")                    where o.Field<DateTime>("OrderDate").Year == 1998 &&                          o.Field<DateTime>("OrderDate").Month == 1 &&                          o.Field<DateTime>("OrderDate").Day < 10                    select new {OrderID=o.Field<int>("OrderID"),                                  Company=c.Field<string>("CompanyName")};         GridView1.DataSource = data;          GridView1.DataBind();     } }