• Linq to xml 示例分析


    image

    XML文件

    <?xml version="1.0" encoding="utf-8"?>
    <Simnumber>
      <Tlinkman Ter_ID="10011000030000000011" TSim="460021238303270">已回收,暂未安装</Tlinkman>
      <Tlinkman Ter_ID="10011000200000000001" TSim="555"></Tlinkman>
      <Tlinkman Ter_ID="10011000010000000001" TSim="460021238303270">市场运营中心</Tlinkman>
    
    
    </Simnumber>
    
    

    1.创建XML

    //创建XML
    private void btn_Add_Click(object sender, EventArgs e)
            {
     
                if (!File.Exists(path))
                {
                    XElement root = new XElement("Simnumber",
                                                 new XElement("Tlinkman",
                                                              new XAttribute("Ter_ID", ""),
                                                              new XAttribute("TSim", "")
                                                     )
                        );
                    root.Save(path);
                    MessageBox.Show("成功!", "消息提示");
                }
                else
    {
                    MessageBox.Show("xml已存在!", "消息提示");
                }
            }
     

    2.删除XML

    image

    //删除XML
    private void btn_Delete_Click(object sender, EventArgs e)
            {
                if (!File.Exists(path))
                {
                    MessageBox.Show("xml还未创建,请创建!", "消息提示");
                }
                if (File.Exists(path))
                {
                    FileInfo file = new FileInfo(path);
     
                    if (MessageBox.Show("是否确认删除!?", "消息提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
                    {
                        file.Delete();
                    }
                }
            }
     

    3.查询

    image

    //查询TSim && Tlinkman
    private void btn_id_Search_Click(object sender, EventArgs e)
    {
      XElement root = XElement.Load(path);
        var address =
            from el in root.Elements("Tlinkman")
            where (string)el.Attribute("Ter_ID") == txt_ID.Text
            select el;
        //判断查询结果
    if (address.Count() == 0)
        {
            txt_error.Text = "-_-。:您查询的结果不存在.";
            txt_Sim.Text = "无结果";
            txt_Tlink.Text = "无结果";
        }
        if (address.Count() != 0)
        {
            foreach (XElement el in address)
            {
                txt_Tlink.Text = el.Value;
                txt_Sim.Text = el.Attribute("TSim").Value;
                txt_error.Text = txt_ID.Text + ",\n" +
                    " #^_^# :查询成功!";
            }
        }
    }
     

    4.新增

    第1次新增

    image

    第2次新增 

    image

    XML:

    <?xml version="1.0" encoding="utf-8"?>
    <Simnumber>
      <Tlinkman Ter_ID="10011000030000000011" TSim="460021238303270">已回收,暂未安装</Tlinkman>
      <Tlinkman Ter_ID="10011000200000000001" TSim="555"></Tlinkman>
      <Tlinkman Ter_ID="10011000010000000001" TSim="460021238303270">市场运营中心</Tlinkman>
      <Tlinkman Ter_ID="122123" TSim="333333">333333</Tlinkman>
    </Simnumber>
    
    

    代码文档:

    //新增TSim && Tlinkman
    private void btn_ADD_TSim_Click(object sender, EventArgs e)
    {
        if (txt_ID.Text != "" && txt_Tlink.Text != "" && txt_Sim.Text != "")
        {
            XDocument xdoc = XDocument.Load(path);
            XElement root = xdoc.Root;
            var address =
                from el in root.Elements("Tlinkman")
                where (string)el.Attribute("Ter_ID") == txt_ID.Text
                select el;
            if (address.Count() == 0)
            {
                root.Add(
                new XElement("Tlinkman", txt_Tlink.Text,
                    new XAttribute("Ter_ID", txt_ID.Text),
                    new XAttribute("TSim", txt_Sim.Text)
                    )
                );
                root.Save(path);
                txt_error.Text = "Ter_ID = " + txt_ID.Text + "添加成功!";
            }
            else
    {
                txt_error.Text = "Sorry,Ter_ID = " + txt_ID.Text + "已存在!不能重复创建。。";
            }
        }
        else
    {
            txt_error.Text = "Ter_ID、TSim和Tlinkman不能为空!";
        }
     
    }
     

    5.修改

    image 

    image

    XML

    <?xml version="1.0" encoding="utf-8"?>
    <Simnumber>
      <Tlinkman Ter_ID="10011000030000000011" TSim="460021238303270">已回收,暂未安装</Tlinkman>
      <Tlinkman Ter_ID="10011000200000000001" TSim="555"></Tlinkman>
      <Tlinkman Ter_ID="10011000010000000001" TSim="460021238303270">市场运营中心</Tlinkman>
      <Tlinkman Ter_ID="122123" TSim="qqqqq">qqqqq</Tlinkman>
    </Simnumber>
    
    

    代码文档:

    //修改TSim && Tlinkman
    private void button1_Click(object sender, EventArgs e)
           {
               if (txt_ID.Text != "" && txt_Tlink.Text != "" && txt_Sim.Text != "")
               {
                   XDocument xdoc = XDocument.Load(path);
                   XElement root = xdoc.Root;
     
                   var p = from pper in root.Elements("Tlinkman")
                           where pper.Attribute("Ter_ID").Value == txt_ID.Text
                           select pper;
                   if (p.Count() != 0)
                   {
                       foreach (XElement xe in p)
                       {
                           xe.Value = txt_Tlink.Text;
                           xe.SetAttributeValue("TSim", txt_Sim.Text);
                       }
                       root.Save(path);
                       txt_error.Text = "Ter_ID = ‘" + txt_ID.Text + "’修改成功!";
                   }
                   else
    {
                       txt_error.Text = "Ter_ID = ‘" + txt_ID.Text + "’不存在,\r\n请先查询再修改!";
                   }
               }
               else
    {
                   txt_error.Text = "Ter_ID、TSim和Tlinkman不能为空!";
               }
           }
     

    6.删除

    (1)Ter_ID不存在时,

    image

    (2)Ter_ID存在时,

    image

    <?xml version="1.0" encoding="utf-8"?>
    <Simnumber>
      <Tlinkman Ter_ID="10011000030000000011" TSim="460021238303270">已回收,暂未安装</Tlinkman>
      <Tlinkman Ter_ID="10011000200000000001" TSim="555"></Tlinkman>
      <Tlinkman Ter_ID="10011000010000000001" TSim="460021238303270">市场运营中心</Tlinkman>
    </Simnumber>
    
    

    (3)Ter_ID=12213已删除

    image 

    //删除TSim && Tlinkman
    private void btn_delete_sim_Click(object sender, EventArgs e)
    {
        XDocument xdoc = XDocument.Load(path);
        XElement root = xdoc.Root;
     
        var p = from pper in root.Elements("Tlinkman")
                where pper.Attribute("Ter_ID").Value == txt_ID.Text
                select pper;
        if (p.Count() != 0)
        {
            p.Remove();
            txt_error.Text = txt_ID.Text + "删除成功!";
            root.Save(path);
        }
        else
    {
            txt_error.Text = "不能删除!查询无结果。。";
        }
     
    }
     

    7.开启(同步数据库。。未完善。。)

    public void Str()
            {
                XDocument xdoc = XDocument.Load(path);
                XElement root = xdoc.Root;
                foreach (XElement item in root.Elements("Tlinkman"))
                {
                    string sim = item.Attribute("TSim").Value;
                    string terid = item.Attribute("Ter_ID").Value;
                    string tlinkman = item.Value;
     
                    //Console.WriteLine("{0},{1},{2}", tlinkman, terid, sim);
    Ter_Base_Model model = new Ter_Base_Model();
                    model.Ter_ID = terid;
                    model.TSim = sim;
                    model.Tlinkman = tlinkman;
                    Ter_Base_Info bll = new Ter_Base_Info();
                    bll.Update(model);
                }
            }
     
            //开启
    private void btn_Start_Click(object sender, EventArgs e)
            {
                Str();
            }
     

    其它代码就不贴出来了。

  • 相关阅读:
    MySQL锁系列3 MDL锁
    MySQL锁系列2 表锁
    MySQL锁系列1
    MySQL open table
    MySQL优化器join顺序
    MySQL优化器cost计算
    MySQL源码 优化器
    MySQL源码 解析器
    MySQL源码 数据结构hash
    微信小程序爬坑日记
  • 原文地址:https://www.cnblogs.com/tangge/p/2600750.html
Copyright © 2020-2023  润新知