LINQ查询语法:XML与数据库操作实例
需积分: 4 98 浏览量
更新于2024-09-17
收藏 28KB DOC 举报
"XML Linq语法"
XML Linq(Language Integrated Query,语言集成查询)是.NET框架中的一个功能,它允许开发者使用类似SQL的语法来处理XML文档。在C#中,XML Linq提供了强类型、类型安全以及面向对象的方式来操作XML数据。与传统的DOM解析方式相比,Linq to XML提供了更简洁、高效的API。
基本语法:
```csharp
var result = from item in container orderby value ascending/descending select item;
```
这个模板展示了基本的查询结构,其中`item`代表要查询的对象,`container`是数据源,`value`是排序依据,`ascending`或`descending`决定了排序的方向(升序或降序)。
1、获取全部记录
```csharp
var allCars = from c in myCars select c;
```
这段代码用于获取`myCars`集合中的所有记录。`select c`将集合中的每个元素投影到一个新的序列中。
(提取指定行记录)
```csharp
var allCars = (from c in myCars select c).Take<myCars>(5);
```
这行代码使用`Take<myCars>(5)`方法提取`myCars`集合的前五个元素。
(模糊查询)
```csharp
var quest = from qu in mdc.Question where qu.Question1.Contains("数") select qu;
```
这是一个模糊查询的例子,`qu.Question1.Contains("数")`检查`Question1`属性是否包含字符串"数",返回满足条件的`Question`对象。
Linq的表的哪列的`Contains()`方法:
`qu.Question1.Contains("数")`表示在`Question1`属性的字符串中查找"数",如果存在,则返回`true`,否则返回`false`。这是Linq提供的一种方便的字符串匹配方法,可以用来进行模糊搜索。
Linq通过对象向数据库添加数据:
```csharp
NewsInfo newnf = new NewsInfo();
newnf.newscontext = nf.newscontext;
newnf.newsauthor = nf.newsauthor;
newnf.newstime = DateTime.Now; // 得到系统时间
mdc.NewsInfo.InsertOnSubmit(newnf); // 标记添加状态
mdc.SubmitChanges(); // 执行添加
```
这段代码展示了如何使用Linq to SQL(一种特定于SQL Server的Linq实现)向数据库添加新记录。`InsertOnSubmit()`方法标记对象为待插入,然后调用`SubmitChanges()`提交更改到数据库。
2、只获取字段名称
```csharp
var names = from c in myCars select c.PetName;
```
这将创建一个包含`myCars`集合中每个元素的`PetName`属性的新序列。
3、使用`Enumerable.Distinct<T>()`
```csharp
var makes = (from c in myCars select c.Make).Distinct<string>();
```
`Distinct<string>()`方法用于去除重复的`Make`值,返回一个不包含重复项的序列。
4、即可以在定义的时候调用`Enumerable`扩展函数
```csharp
var names = from c in myCars select c.PetName;
foreach (var n in names)
{
Console.WriteLine("Name: {0}", n);
}
var makes = from c in myCars select c.Make;
Console.WriteLine("Distinct makes:");
foreach (var m in makes.Distinct<string>())
{
Console.WriteLine("Make: {0}", m);
}
```
这里演示了如何在查询定义时以及查询结果上使用`Enumerable`的扩展方法,如`Distinct<string>`,以及如何遍历查询结果并打印出来。
XML Linq提供了一种直观且强大的方式来处理XML数据,结合了SQL查询的简洁性和面向对象编程的灵活性。无论是查询、筛选、排序还是处理重复数据,Linq都能提供高效且易读的解决方案。
2017-10-27 上传
2013-06-17 上传
2014-05-15 上传
2012-11-15 上传
2011-03-23 上传
2022-09-23 上传
2020-12-07 上传
2011-04-09 上传
2016-07-07 上传
ACODE1
- 粉丝: 36
- 资源: 11
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章