LINQ的类型
在MSDN官方文件中,LINQ分为几种类型:
. LINQ to Objects(或称LINQ to Collection),这是LINQ的基本功能,针对集合对象进行查询处理,包括基本的汇总与过滤都在这个功能内实现。
. LINQ to SQL,这是LINQ功能的SQL Server数据库版本,通过LINQ指令,可以直接查询SQL Server数据库,而完全无须编写SQL指令,这个功能在推出初期受到了相当大的关注,目前这个功能已经融入EF内。
. LINQ to
. LINQ to DataSet(或称LINQ to ADO.NET),是为现有以DataSet或DataTable对象开发应用程序提供支持LINQ操作的功能,以AsEnumerate()为基础,将DataSet与DataTable内的数据转换成IEnumerable接口的集合对象,即可直接使用LINQ to Objects的方式查询。
什么是LINQ to
LINQ to
LINQ to 您可以查询和修改 但是,LINQ to
LINQ to 由于实现了这一集成,因此,可以对内存 LINQ to Visual C# 2008 集成 LINQ 后,可提供更强的类型化功能、编译时检查和改进的调试器支持。
LINQ to 这种方法称为“函数构造”,利用这种方法,开发人员可以方便地将
下面是对于
1、导出
/// <summary> /// 导出/// </summary> /// <returns></returns> public ActionResult Reporttry {#if DEBUG List<UserInfo> user = new List<UserInfo>() { new UserInfo(){UserId="1",UserName="张三",UserSex="男",UserAge=18}, new UserInfo(){UserId="2",UserName="李四",UserSex="男",UserAge=18}, new UserInfo(){UserId="3",UserName="王五",UserSex="男",UserAge=18}, new UserInfo(){UserId="4",UserName="赵六",UserSex="女",UserAge=18}, };#endif = new @"C:\User.", null); // 设置缩进 my Formatting.Indented; // 编写版本为“1.0”并具有独立特性的 myfalse); my"UserInfo"); // 注释 my"记录用户的信息"); foreach (var item in user) { my"User"); my"UserId", item.UserId.ToString()); my"UserName", item.UserName); my"UserSex", item.UserSex); my"UserAge", item.UserAge.ToString()); myreturn Json(new { msg = "导出成功" }, JsonRequestBehavior.AllowGet); } catch (Exception) { return Json(new { msg = "导出失败" }, JsonRequestBehavior.AllowGet); } }
2、读取
/// <summary> /// 读取/// </summary> /// <returns></returns> public ActionResult Read<UserInfo> list = new List<UserInfo>(); XElement xe = XElement.Load(@"C:\User."); IEnumerable<XElement> elements = from p in xe.Elements("User") select p; foreach (var item in elements) { UserInfo user = new UserInfo(); user.UserId = item.Attribute("UserId").Value; user.UserName = item.Element("UserName").Value; user.UserSex = item.Element("UserSex").Value; user.UserAge = int.Parse(item.Element("UserAge").Value); list.Add(user); } return Json(list.ToList(), JsonRequestBehavior.AllowGet); }
3、删除一条
/// <summary> /// 删除/// </summary> /// <param name="userId"></param> /// <returns></returns> public ActionResult Deletestring userId) { try { XElement xe = XElement.Load(@"C:\User."); IEnumerable<XElement> elements = from p in xe.Elements("User") where p.Attribute("UserId").Value == userId.ToString() select p; if (elements.Count() > 0) { elements.Remove(); } xe.Save(@"C:\User."); return Json(new { flag = true }, JsonRequestBehavior.AllowGet); } catch (Exception) { return Json(new { flag = false }, JsonRequestBehavior.AllowGet); } }
4、添加一条
/// <summary> /// 新增/// </summary> /// <returns></returns> public ActionResult Addtry { XElement xe = XElement.Load(@"C:\User."); XElement record = new XElement( new XElement("User", new XAttribute("UserId", Guid.NewGuid()), new XElement("UserName", "张学友"), new XElement("UserSex", "男"), new XElement("UserAge", "20") )); xe.Add(record); xe.Save(@"C:\User."); return Json(new { flag = true }, JsonRequestBehavior.AllowGet); } catch (Exception) { return Json(new { flag = false }, JsonRequestBehavior.AllowGet); } }
5、修改一条
/// <summary> /// 编辑/// </summary> /// <param name="userId"></param> /// <returns></returns> public ActionResult Editstring userId) { try { XElement xe = XElement.Load(@"C:\User."); IEnumerable<XElement> elements = from p in xe.Elements("User") where p.Attribute("UserId").Value == userId.ToString() select p; if (elements.Count() > 0) { XElement model = elements.FirstOrDefault(); // 设置新属性 model.SetAttributeValue("UserId", userId); // 更新新节点 model.ReplaceNodes ( new XElement("UserName", "周杰伦"), new XElement("UserSex", "男"), new XElement("UserAge", 30) ); } xe.Save(@"C:\User."); return Json(new { flag = true }, JsonRequestBehavior.AllowGet); } catch (Exception) { return Json(new { flag = false }, JsonRequestBehavior.AllowGet); } }
6、前台页面代码
@{ Layout = null;}<!DOCTYPE html><html><head> <meta name="viewport" content="width=device-width" /> <title>Index</title> <script src='/images/loading.gif' data-original="~/Scripts/jquery-1.10.2.js"></script> <script type="text/javascript"> $(function () { $("#btnReport").click(function () { Report"#btnRead").click(function () { Readfunction (e) { Deletethis).attr("userId")); } }, ".btndelete"); $("#btnAdd").click(function () { Addfunction (e) { Editthis).attr("userId")); } }, ".btnEdit"); }); // 导出 function Reportvar option = { url: '/', type: "post", success: function (data) { if (data.msg) { alert("导出成功!"); } else { alert("导出失败!"); } } }; $.ajax(option); } // 读取 function Readvar option = { url: '/', type: "get", success: function (data) { $("#tb_table tr:gt(0)").remove(); var html = ""; $.each(data, function (index, item) { html += "<tr>"; html += "<td>" + item.UserName + "</td>"; html += "<td>" + item.UserSex + "</td>"; html += "<td>" + item.UserAge + "</td>"; html += "<td><input class='btndelete' type='button' userId='" + item.UserId + "' value='删除'/><input class='btnEdit' type='button' userId='" + item.UserId + "' value='修改'/></td>"; html += "</tr>"; }); $("#tb_table").append(html); } }; $.ajax(option); } // 删除 function Deleteif (confirm("确定要删除吗?")) { var option = { url: '/', type: 'get', data: { userId: userId }, success: function (data) { if (data.flag) { alert("删除成功!"); Readelse { alert("删除失败!"); } } }; $.ajax(option); } } // 添加 function Addvar options = { url: '/', type: 'get', success: function (data) { if (data.flag) { alert("新增成功!"); Readelse { alert("新增失败!"); } } }; $.ajax(options); } // 修改 function Editvar options = { url: '/', type: 'get', data: { userId: userId }, success: function (data) { if (data.flag) { alert("修改成功!"); Readelse { alert("修改失败!"); } } }; $.ajax(options); } </script></head><body> <div> <input type="button" value="导出 id="btnReport" /> <input type="button" value="读取 id="btnRead" /> <input type="button" value="添加 id="btnAdd" /> </div> <br /><br /> <table id="tb_table" border="1"> <tr> <td>姓名</td> <td>性别</td> <td>年龄</td> <td>操作</td> </tr> </table> <br /></body></html>
7、页面效果
权责申明
作者:SportSky 出处: http://www.cnblogs.com/sportsky/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如果觉得还有帮助的话,可以点一下右下角的【推荐】,希望能够持续的为大家带来好的技术文章!想跟我一起进步么?那就【关注】我吧。
原标题:Linq to XML操作XML文件
关键词:xml