LINQ查询语法:XML与数据库操作实例

需积分: 4 1 下载量 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都能提供高效且易读的解决方案。