zoukankan      html  css  js  c++  java
  • Linq操作数据库、Linq To XML

    Framework提供了DataContext类,它类似于ADO.NET中的SqlConnection,为实体对象和数据库提供连接的桥梁。 Linq操作的数据表中必须有主键字段。

    linq操作的实体类对象,如何让实体对象同数据库中的表或视图建立对应关系呢?

    建立对应关系两种方式:

    1. 添加新建项→ADO.Net实体数据模型→从数据库生成 :根据数据库中已存在的表创建实体模型,

    2.  添加新建项→ADO.Net实体数据模型→空模型:在创建的空模型上,设计实体模型,再根据实体模型生成sql脚本,执行后在数据库中创建相应的表。

    以上操作完成后,会自动生成实体上下文,和对应的实体类。

    DataContext dc = new DataContext();//创建实体上下文

    (1)查询表中所有的男生:

    List<Student> list = (from s in dc.Students where s.sex == true select s).ToList();

    (2)按年龄由大到小查询学生的姓名:

    List<string> list =(from s in dc.Students orderby s.birthday decending select s.name).ToList();

                                                                            s.birthday ascending

    (3)查询成绩在第3名到第10名的学生姓氏和成绩是否及格

    var sel = ( from s in dc.Students orderby s.mark

                     select new { firstname = s.name.Substring(0,1),

                                  isPass = (s.mark >= 60) ? true : false }

              ).Skip(2).Take(8);

    foreach(var one in sel)

    {

          string fn=one.firstname;

          bool b = one.isPass;

    }

             

    (4)查询张三、李四的成绩:

    List<double?> list = (from s in dc.Students

                            where new string[]{"张三","李四"}.Contains(s.name)

                            select s.mark ).ToList();

    (5)查询姓张的学生:

    var sel = from s in dc.Students

              where s.name.IndexOf("张")==0

              select s;

    var sel = from s in dc.Students

              where s.name.Contains("张")

              select s;

    --------------------------------------------------

    Linq To XML

    主要依赖下面三个类来操作XML数据:

    XDocument:代表XML文档

    XElement:代表XML元素

    XAttribute:代表XML属性

    XML文档:

    <?xml version="1.0" encoding="utf-8"?>

    <!--这是XML文件中的注释-->

    <Root>

        <student name="郭靖"

                 sex="true"

                 birthday="1988-02-15"

                 mark="50" />

        <student name="黄蓉"

                 sex="false"

                 birthday="1989-01-10"

                 mark="90" />

    </Root>

    (1)创建一个XML文档

    XElement root = new XElement

    (

        "Root",

        new XElement("student",new XAttribute("name","郭靖"),

                               new XAttribute("sex",true),

                               new XAttribute("birthday","1988-02-15"),

                               new XAttribute("mark",50) ),

        new XElement("student"),new XAttribute("name","黄蓉"),

                                new XAttribute("sex",false),

                                new XAttribute("birthday","1989-01-10"),

                                new XAttribute("mark",90) )

    );

    XDocument doc = new XDocument

    (

       new XComment("这是XML文件中的注释"),

       root

    );

    doc.Save("c:\\student.xml");     //XDocument使用Save来序列化XML文档

    (2) 修改元素和属性

    //添加一个新元素

    XElement xel = new XElement("student",new XAttribute("name","张三"),

                                           new XAttribute("sex",false)

                                );

    doc.Root.Add(xel);

    //修改或添加属性     xel.SetAttributeValue("name","李四");

    xel.SetAttributeValue("IQ","100");

    //SetAttributeValue用于修改元素中指定属性的值,如果该属性不存在,则创建该属性。

    (3)查询

    //查询所有男生的姓名,性别

    XElement root = XElement.Load("c:\\student.xml");

    var sel = from s in root.Elements("student")          

               where s.Attribute("sex").Value=="true"

               select new

               {

                    name=s.Attribute("name").Value,

                    sex=s.Attribute("sex").Value

               };

    //数据源为root.Element("student"),用Elements取元素中的子元素,用Attribute取元素中的属性

  • 相关阅读:
    Ocaml入门(3)
    Delphi数组成员丢失
    Delphi合并2个动态数组
    Delphi用指针读取数组某个元素
    Delphi函数返回数组之TList函数返回
    Delphi函数返回数组之使用TList参数
    Delphi让函数返回数组
    Delphi双向链表
    Delphi指针与string
    Delphi函数指针,用于加载DLL
  • 原文地址:https://www.cnblogs.com/chay1227/p/2860919.html
Copyright © 2011-2022 走看看