65.9K
CodeProject 正在变化。 阅读更多。
Home

在 Compact Framework 3.5 中使用 LINQ 和数据集

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.91/5 (12投票s)

2007 年 6 月 14 日

CPOL

1分钟阅读

viewsIcon

103517

downloadIcon

1838

简介:在 Compact Framework 3.5 Beta 1 中使用 LINQ 和数据集

Screenshot - demo.jpg

引言

在本文中,我将讨论 LINQ 和 Compact Framework 3.5。我编写了一个简单的示例来演示如何使用 LINQ 和数据集来操作数据。

背景

什么是 LINQ?LINQ 是 .NET Framework 扩展的一系列功能的代号,它涵盖了语言集成的数据查询、集合和转换操作。它包括对 C# 和 Visual Basic 语言的扩展,具有用于查询的本机语言语法。它还提供了利用这些功能的类库。随着 Compact Framework 3.5 和 Visual Studio "Orcas" Beta 1 的发布,LINQ 扩展现在也可用于移动开发。

关于示例

在此示例中,我将演示一个具有一个窗体的简单应用程序。它在一个网格中显示和搜索国家/地区的信息。为了说明如何使用 LINQ 和数据集,该应用程序将从 SQL Server Compact Edition 文件 demo.sdf 中检索数据。该应用程序使用类型化数据适配器作为数据访问层,并使用 DataTable 作为数据类型。

Screenshot - ds.jpg

LINQ 实际应用

在下面的代码中,我正在从数据库中检索数据并填充 Countries DataTable。之后,仅用于说明,我使用 LINQ 对数据进行排序并在网格中通过 bindingSource 对象显示数据。

///Loading data from demo.sdf to Countries table
private void LoadData()
{
    ///Get Data
    Countries = dal.GetData();

    ///Building LINQ Query
    var query = from r in Countries.AsEnumerable()
        orderby r.Field<string>("Name") ascending
        select new 
    { 
        Code = r.Field<string>("Code"), Name = r.Field<string>("Name") 
    };

    ///Binding data
    bindingSource1.DataSource = query;
}

在下面的代码中,我使用 LINQ 在 DataTable 中搜索数据。

///Building LINQ Query
var query = from r in Countries.AsEnumerable()
    where r.Field<string>("Name").ToLower().Contains(txtSearch.Text.ToLower())
    orderby r.Field<string>("Name") ascending
    select new 
    { 
        Code = r.Field<string>("Code"), Name = r.Field<string>("Name") 
    };

///Binding data
bindingSource1.DataSource = query;

结论

如您所见,LINQ 非常易于使用且直观。它的语法与 SQL 非常相似,并且是 C# 和 Visual Basic 语言的一部分。我们可以在许多场景中用它来操作数据。

历史

  • 2007 年 6 月 14 日 -- 发布原始版本
© . All rights reserved.