LINQ,即语言集成查询(Language Integrated Query),是.NET框架的一个扩展集,它为数据查询、集合操作和转换提供了一套语言级别的集成解决方案。LINQ通过C#和Visual Basic语言的原生语法扩展,提供了查询功能,并且提供了类库来利用这些功能。随着.NET Compact Framework3.5和Visual Studio "Orcas" Beta 1的发布,LINQ的扩展现在也可用于移动开发。
本文将通过一个简单的示例来展示如何使用LINQ和数据集来操作数据。示例中的应用程序包含一个表单,用于显示和搜索国家的相关信息。为了演示如何使用LINQ和数据集,应用程序将从SQL Server Compact Edition文件demo.sdf
中检索数据。应用程序使用类型化数据适配器作为数据访问层,并将DataTable作为数据类型。
在下面的代码示例中,将从数据库中检索数据并填充到Countries DataTable中。然后,为了演示,将使用LINQ对数据进行排序,并通过bindingSource对象在网格中显示数据。
private void LoadData()
{
// 获取数据
Countries = dal.GetData();
// 构建LINQ查询
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")
};
// 绑定数据
bindingSource1.DataSource = query;
}
在下面的代码示例中,使用LINQ在DataTable中搜索数据。
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")
};
// 绑定数据
bindingSource1.DataSource = query;