博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.net xml导入到数据中
阅读量:4212 次
发布时间:2019-05-26

本文共 2750 字,大约阅读时间需要 9 分钟。

-- 数据库表的创建

IF OBJECT_ID('Sys_File') IS NOT NULL

DROP TABLE Sys_File
GO
CREATE TABLE Sys_File
(
Id
INT IDENTITY(1,1) PRIMARY KEY
-- 主键Id
,ParentId
INT
-- 父文件Id
,SysFileName
NVARCHAR(100)
-- 文件名称
,IsEnable
INT
DEFAULT 0
-- 是否可用
)

GO

---读取xml文件的方法-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

/// <summary>

        /// 读取XML文件
        /// </summary>
        /// <param name="filepath"></param>
        private void ReadXML(string filepath)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(filepath);                                     //加载Xml文件  
            XmlElement rootElem = doc.DocumentElement;              //获取根节点  
            _TreeOperation.AddSysFile(ParentId, rootElem.Name);     // 插入根节点数据
            #region 获取ParentId
            DataTable dt = _TreeOperation.GetSysFile(rootElem.Name);
            if (null != dt && dt.Rows.Count > 0)
            {
                ParentId = Convert.ToInt32(dt.Rows[0]["Id"]);
            }
            #endregion 获取ParentId
            foreach (XmlNode xl in rootElem.ChildNodes)                 //获取book子节点集合  
            {
                ReadXmlNode1(xl, ParentId);
            }
        }

---方法一  foreach 实现------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

/// <summary>

        /// 读取节点, 直到最底层的数据
        /// </summary>
        /// <param name="xl"></param>
        /// <returns></returns>
        private void ReadXmlNode1(XmlNode xl, int i)
        {
            XmlNode xNode;                                                          //存放xml节点
            XmlNodeList xNodeList;                                                  //存放节点集合(这里是所有子节点的集合)
            if (xl.HasChildNodes)                                                   // 若有子节点则,进行循环插入
            {
                _TreeOperation.AddSysFile(i, xl.Name);
                int Pid = _TreeOperation.GetMaxId();                                // 获取刚新增的数据Id
                xNodeList = xl.ChildNodes;
                foreach (XmlNode item in xNodeList)
                {
                    xNode = item;
                    ReadXmlNode1(xNode, Pid);
                }
            }
            else
            {
                _TreeOperation.AddSysFile(i, xl.Name);
            }
        }

------方法二:for循环 实现---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

/// <summary>

        /// 读取XML文件
        /// </summary>
        /// <param name="filepath"></param>
        private void ReadXML(string filepath)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(filepath);                                     //加载Xml文件  
            XmlElement rootElem = doc.DocumentElement;              //获取根节点  
            _TreeOperation.AddSysFile(ParentId, rootElem.Name);     // 插入根节点数据
            #region 获取ParentId
            DataTable dt = _TreeOperation.GetSysFile(rootElem.Name);
            if (null != dt && dt.Rows.Count > 0)
            {
                ParentId = Convert.ToInt32(dt.Rows[0]["Id"]);
            }
            #endregion 获取ParentId
            foreach (XmlNode xl in rootElem.ChildNodes)                 //获取book子节点集合  
            {
                ReadXmlNode1(xl, ParentId);
            }
        }

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

相关网址:http://bbs.csdn.net/topics/370042070

转载地址:http://jtzmi.baihongyu.com/

你可能感兴趣的文章
mysql sp
查看>>
SELECT ... FOR UPDATE LOCK IN SHARE MOD
查看>>
恢复oracle数据到以前的某个时间点
查看>>
mysql kettle 分页
查看>>
mongoDB 入门指南、示例
查看>>
不存在插入的一种写法
查看>>
p_vipshop_to_actual_day_shop_sale
查看>>
写MySQL存储过程实现动态执行SQL
查看>>
P_sync_etl_mid_data
查看>>
js正则表达式语法
查看>>
常用正则表达式大全 (转)
查看>>
mysql版同步数据
查看>>
MySQL参数DELAY_KEY_WRITE的详细说明
查看>>
利用MYSQL 日志恢复
查看>>
mysql 大量数据插入(可用于数据添加字段不能添加的情况,因为会copy临时表。这样可以手动分批处理)
查看>>
MySQL数据库中表类型MyISAM与InnoDB的区别
查看>>
windows mysql忘记root密码的解决方法
查看>>
[MySQL FAQ]系列 — 为什么InnoDB表要建议用自增列做主键
查看>>
MySql中启用InnoDB数据引擎的方法
查看>>
INNODB 热备工具试验与总结
查看>>