LINQ to DataSet

// Fill the DataSet.

//单表查询
DataSet ds = new DataSet();
ds.Locale = CultureInfo.InvariantCulture;
FillDataSet(ds);

DataTable orders = ds.Tables["SalesOrderHeader"];

var query =
    from order in orders.AsEnumerable()
    where order.Field<bool>("OnlineOrderFlag") == true
    select new
           {
               SalesOrderID = order.Field<int>("SalesOrderID"),
               OrderDate = order.Field<DateTime>("OrderDate"),
               SalesOrderNumber = order.Field<string>("SalesOrderNumber")
           };

foreach (var onlineOrder in query)
{
    Console.WriteLine("Order ID: {0} Order date: {1:d} Order number: {2}",
        onlineOrder.SalesOrderID,
        onlineOrder.OrderDate,
        onlineOrder.SalesOrderNumber);
}

//交叉表查询

// Fill the DataSet.
DataSet ds = new DataSet();
ds.Locale = CultureInfo.InvariantCulture;
FillDataSet(ds);

DataTable orders = ds.Tables["SalesOrderHeader"];
DataTable details = ds.Tables["SalesOrderDetail"];

var query =
    from order in orders.AsEnumerable()
    join detail in details.AsEnumerable()
    on order.Field<int>("SalesOrderID") equals
        detail.Field<int>("SalesOrderID")
    where order.Field<bool>("OnlineOrderFlag") == true
    && order.Field<DateTime>("OrderDate").Month == 8
    select new
           {
               SalesOrderID =
                   order.Field<int>("SalesOrderID"),
               SalesOrderDetailID =
                   detail.Field<int>("SalesOrderDetailID"),
               OrderDate =
                   order.Field<DateTime>("OrderDate"),
               ProductID =
                   detail.Field<int>("ProductID")
           };


foreach (var order in query)
{
    Console.WriteLine("{0}\t{1}\t{2:d}\t{3}",
        order.SalesOrderID,
        order.SalesOrderDetailID,
        order.OrderDate,
        order.ProductID);
}

你可能感兴趣的:(LINQ)