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






4.91/5 (12投票s)
简介:在 Compact Framework 3.5 Beta 1 中使用 LINQ 和数据集
引言
在本文中,我将讨论 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 作为数据类型。
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 日 -- 发布原始版本