欢迎来到皮皮网网首页

【超短之神源码】【C网络验证源码】【850棋牌源码下载】datagrid源码修改

来源:discuz解压源码 时间:2024-11-25 03:46:39

1.datagridԴ?源码??޸?

datagrid源码修改

datagridԴ???޸?

       完全按你的要求写的,供参考:

       前提是修改XML文件已创建好,在窗体里选择该XML文件,源码超短之神源码再行操作:

       窗体:

 //选择XML按钮

               private void btnXML_Click(object sender,修改 EventArgs e)

               {

                   DataTable dt = new DataTable();

                   OpenFileDialog xmlFile = new OpenFileDialog();

                   xmlFile.Filter = "*.xml|";

                   xmlFile.Title = "请选择xml文件";

                   if (xmlFile.ShowDialog() == DialogResult.OK)

                   {

                       this.txtPath.Text = xmlFile.FileName;//在textBox1控件中显示选择的路径

                       dt=GetXML(this.txtPath.Text);

                   }

                   if(!dt.Equals(null)&&dt.Rows.Count>0)

                   LoadData(dt, dgvXML);//加载到窗体中

               }

               //保存按钮

               private void button1_Click(object sender, EventArgs e)

               {

                   int n = SaveDgv();

                   if (n > 0)

                   {

                       MessageBox.Show("保存成功!");

                       DataTable dt = new DataTable();

                       dt = GetXML(this.txtPath.Text);

                       LoadData(dt,源码C网络验证源码 dgvXML);//刷新加载

                   }

                   else

                   {

                       MessageBox.Show("保存失败!");

                       DataTable dt = new DataTable();

                       dt = GetXML(this.txtPath.Text);

                       LoadData(dt,修改850棋牌源码下载 dgvXML);//刷新加载

                   }

               }

               //删除按钮

               private void btnDelete_Click(object sender, EventArgs e)

               {

                   int n = 0;//判断是否删除

                   for (int i = 0; i < dgvXML.SelectedRows.Count; i++)

                   {

                       string id = dgvXML.SelectedRows[i].Cells[0].Value.ToString();

                       XmlDocument doc = new XmlDocument();

                       doc.Load(this.txtPath.Text);

                       XmlNodeList nod = doc.DocumentElement.ChildNodes;

                       XmlNode root = doc.DocumentElement;

                       foreach (XmlNode peo in nod)

                       {

                           if (XmlNode.Equals(peo.SelectSingleNode("ID").InnerText, id))

                           {

                               root.RemoveChild(peo);//从根节点删除该ID的PERSON

                               doc.Save(this.txtPath.Text);

                               n++;

                           }

                       }

                   }

                   if (n > 0)

                   {

                       DataTable dt = new DataTable();

                       dt = GetXML(this.txtPath.Text);

                       LoadData(dt, dgvXML);//刷新加载

                       MessageBox.Show("删除成功!");

                   }

                   else

                   {

                       MessageBox.Show("删除失败!源码");

                   }

                   

               }

               // DataGridView中加载数据

               private void LoadData(DataTable dt,修改 DataGridView dgv)

               {

                   dgv.Rows.Clear();//datagridview清空数据

                   if (dt != null && dt.Rows.Count > 0)

                   {

                       dgv.Rows.Add(dt.Rows.Count);

                       for (int i = 0; i < dt.Rows.Count; i++)

                       {

                           for (int k = 0; k < dt.Columns.Count; k++)

                           {

                               dgv.Rows[i].Cells[k].Value = dt.Rows[i][k].ToString();//赋值

                           }

                       }

                   }

               }

               //datagridview添加行号

               private void dataGridView1_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)

               {

                   e.Row.HeaderCell.Value = (e.Row.Index + 1).ToString();

               }

               //解析XML生成DATATABLE

               private List<string> IDList = new List<string>();//用来记录已有的ID,以在修改时判断是源码否新增

               private DataTable GetXML(string path)

               {

                   DataTable dt = new DataTable();

                   dt.Columns.Add("ID");

                   dt.Columns.Add("NAME");

                   dt.Columns.Add("SEX");

                   dt.Columns.Add("PHONE");

                   XmlDocument doc = new XmlDocument();

                   doc.Load(path);

                   XmlNodeList nod = doc.DocumentElement.ChildNodes;

                   foreach (XmlNode peo in nod)

                   {

                       XmlNodeList pe = peo.ChildNodes;

                       DataRow row = dt.NewRow();

                       foreach (XmlNode p in pe)

                       {

                           if (p.Name == "ID")

                           {

                               row["ID"] = p.InnerText.ToString();

                               IDList.Add(p.InnerText.ToString());//添加ID记录,以在修改时判断是修改否新增

                           }

                           if (p.Name == "NAME")

                           {

                               row["NAME"] = p.InnerText.ToString();

                           }

                           if (p.Name == "SEX")

                           {

                               row["SEX"] = p.InnerText.ToString();

                           }

                           if (p.Name == "PHONE")

                           {

                               row["PHONE"] = p.InnerText.ToString();

                           }

                       }

                       dt.Rows.Add(row);

                   }

                   return dt;

               }

               //修改dgv数据后保存到XML文件

               private int SaveDgv()

               {

                   int n = 0;

                   for (int i = 0; i < dgvXML.Rows.Count-1; i++)

                   {

                       XmlDocument doc = new XmlDocument();

                       doc.Load(this.txtPath.Text);

                       XmlNodeList nod = doc.DocumentElement.ChildNodes;

                       string id = dgvXML.Rows[i].Cells[0].Value.ToString();

                       if (IDList.Contains(id)) //如果是已有的ID,则修改

                       {

                           foreach (XmlNode peo in nod)

                           {

                               if (XmlNode.Equals(peo.SelectSingleNode("ID").InnerText,源码 id))

                               {

                                   peo.SelectSingleNode("NAME").InnerText = dgvXML.Rows[i].Cells[1].Value.ToString();//赋值姓名

                                   peo.SelectSingleNode("SEX").InnerText = dgvXML.Rows[i].Cells[2].Value.ToString();//赋值性别

                                   peo.SelectSingleNode("PHONE").InnerText = dgvXML.Rows[i].Cells[3].Value.ToString();//赋值电话

                                   doc.Save(this.txtPath.Text);

                                   n++;

                                   break;//当找到该ID记录并修改后,跳出循环

                               }

                           }

                       }

                       else //否则为新增

                       {

                           XmlNode root = doc.DocumentElement;

                           XmlElement PERSON = doc.CreateElement("PERSON");

                           XmlElement ID = doc.CreateElement("ID");

                           ID.InnerText = id;//赋值id

                           XmlElement NAME = doc.CreateElement("NAME");

                           NAME.InnerText = dgvXML.Rows[i].Cells[1].Value.ToString();//赋值姓名

                           XmlElement SEX = doc.CreateElement("SEX");

                           SEX.InnerText = dgvXML.Rows[i].Cells[2].Value.ToString();//赋值性别

                           XmlElement PHONE = doc.CreateElement("PHONE");

                           PHONE.InnerText = dgvXML.Rows[i].Cells[3].Value.ToString();//赋值电话

                           PERSON.AppendChild(ID);

                           PERSON.AppendChild(NAME);

                           PERSON.AppendChild(SEX);

                           PERSON.AppendChild(PHONE);

                           root.AppendChild(PERSON);

                           doc.Save(this.txtPath.Text);//保存

                           n++;

                       }

                   }

                   return n;

               }

       XML文件:

       <?修改xml version="1.0" standalone="yes"?>

       <List>

         <PERSON>

           <ID></ID>

           <NAME>测一</NAME>

           <SEX>男男</SEX>

           <PHONE></PHONE>

         </PERSON>

         <PERSON>

           <ID></ID>

           <NAME>再二</NAME>

           <SEX>女女</SEX>

           <PHONE></PHONE>

         </PERSON>

         <PERSON>

           <ID></ID>

           <NAME>张三</NAME>

           <SEX>男男</SEX>

           <PHONE></PHONE>

         </PERSON>

         <PERSON>

           <ID></ID>

           <NAME>王五</NAME>

           <SEX>女女</SEX>

           <PHONE></PHONE>

         </PERSON>

       </List>