将DataTable中的数据以Xml格式写到指定的文件内,并读取

来源:互联网 发布:php删除二维数组重复 编辑:程序博客网 时间:2024/04/29 04:55

 1、写入

      public void EventCodeSigns()
        {

            //创建DataTable数据表格,并填充数据。
            DataTable dt = new DataTable();
            dt.TableName = "huanjing";
            dt.Columns.Add("code");
            dt.Columns.Add("sign");
            for (int i = 0; i < this.EventCodes.Count; i++)
            {
                DataRow dr = dt.Rows.Add();
                dr[0] = this.EventCodes[i];
                dr[1] = this.EvCodeSigns[i];
            }

            //指定文件位置
            string filepatch = ConfigLibrary.ConfigManage.AppPach + "
\\EventSigns\\" + devType + "\\" + devId + ".xml";

            //System.Environment.CurrentDirectory(获取当前路径)

            //指定文件目录
            string dirPath = filepatch.Substring(0, filepatch.LastIndexOf("\\"));

 

                    //判断目录是否存在
            if (!System.IO.Directory.Exists(dirPath))
            {
                try
                {
                    //创建目录
                    System.IO.Directory.CreateDirectory(dirPath);
                }
                catch
                {
                }
            }

           //将DataTable数据写入到指定的文件中

            lock (obj)
            {
                dt.WriteXml(filepatch);
            }

        }

2、读取

           string filepatch = ConfigLibrary.ConfigManage.AppPach + "\\EventSigns\\" + devType + "\\" + devId + ".xml";
            if (System.IO.File.Exists(filepatch))
            {
                DataSet ds = new DataSet();
                lock (base.obj)
                {
                    ds.ReadXml(filepatch);
                }
                DataTable dt = ds.Tables[0];
                if(dt.Rows.Count!=0)
                {
                    for (int i = 0; i < dt.Rows.Count;i++ )
                    {
                        string a = dt.Rows[i][0].ToString();
                       if(base.EventCodes[i]==short.Parse(dt.Rows[i][0].ToString()))
                       {
                           base.EvCodeSigns[i] = byte.Parse(dt.Rows[i][1].ToString());
                       }
                    }
                }
            }

原创粉丝点击