string 类型的xml 转成 DataTable或者DataSet,然后插入数据库

TK_Knigth 2013-07-01 11:18:05

我有

<DATE>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
</DATE>
</RESULT>


我有这样一个格式的 字符串, 一个<RS></RS>里面是一条数据,怎么把它一条条的插入到对应的数据库里面去啊。。。SqlDataAapter??
求帮忙。。。求学啊
...全文
158 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
董事长Kevin 2013-12-19
  • 打赏
  • 举报
回复
Mark xml
TK_Knigth 2013-07-02
  • 打赏
  • 举报
回复
引用 8 楼 Return_false 的回复:
为什么不直接解析XML后遍历,然后插入数据库 而非要中间在转换成DataTable呢?
引用 8 楼 Return_false 的回复:
为什么不直接解析XML后遍历,然后插入数据库 而非要中间在转换成DataTable呢?
字段有点多啊。。。。而且你这个如果一个字段改了。。那。。先试试7楼的。。谢谢啊,嘎嘎
  • 打赏
  • 举报
回复
string xmlStr = @"<DATE>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
  </DATE>";
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(xmlStr);
                foreach (XmlNode xn in xmlDoc.SelectNodes("/DATE/RS"))
                {
                    string JGBM = xn.SelectSingleNode("JGBM").InnerText;//机构编码
                    string JGMC = xn.SelectSingleNode("JGMC").InnerText;//机构名称
                }
马老虎 2013-07-01
  • 打赏
  • 举报
回复
首先解决的是 你要怎么解析这个XML 第一 你可以使用 .net 提供xml序列化。 第二 自己手写解析(使用XPath或Linq)。
  • 打赏
  • 举报
回复
先解析xml,把数据都拿出来
CqCoder 2013-07-01
  • 打赏
  • 举报
回复
3L正解 取到数据行1 插入数据库 取到数据行2 插入数据库 ............
  • 打赏
  • 举报
回复
为什么不直接解析XML后遍历,然后插入数据库 而非要中间在转换成DataTable呢?
EnForGrass 2013-07-01
  • 打赏
  • 举报
回复
引用 6 楼 T_Knigth 的回复:
[quote=引用 2 楼 mmm306306 的回复:] 首先解决的是 你要怎么解析这个XML 第一 你可以使用 .net 提供xml序列化。 第二 自己手写解析(使用XPath或Linq)。
找了好多,你说的言简意赅啊!!1[/quote]

 /**/
        /// <summary>
        /// 将Xml内容字符串转换成DataSet对象
        /// </summary>
        /// <param name="xmlStr">Xml内容字符串</param>
        /// <returns>DataSet对象</returns>
        public static DataSet CXmlToDataSet(string xmlStr)
        {
            if (!string.IsNullOrEmpty(xmlStr))
            {
                StringReader StrStream = null;
                XmlTextReader Xmlrdr = null;
                try
                {
                    DataSet ds = new DataSet();
                    //读取字符串中的信息
                    StrStream = new StringReader(xmlStr);
                    //获取StrStream中的数据
                    Xmlrdr = new XmlTextReader(StrStream);
                    //ds获取Xmlrdr中的数据                
                    ds.ReadXml(Xmlrdr);
                    return ds;
                }
                catch (Exception e)
                {
                    throw e;
                }
                finally
                {
                    //释放资源
                    if (Xmlrdr != null)
                    {
                        Xmlrdr.Close();
                        StrStream.Close();
                        StrStream.Dispose();
                    }
                }
            }
            else
            {
                return null;
            }
        }
调用

 string xmlStr = @"<DATE>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
  </DATE>";

            DataTable dt = new DataTable();
            dt = CXmlToDataSet(xmlStr).Tables[0];
TK_Knigth 2013-07-01
  • 打赏
  • 举报
回复
引用 2 楼 mmm306306 的回复:
首先解决的是 你要怎么解析这个XML 第一 你可以使用 .net 提供xml序列化。 第二 自己手写解析(使用XPath或Linq)。
找了好多,你说的言简意赅啊!!1
TK_Knigth 2013-07-01
  • 打赏
  • 举报
回复
引用 1 楼 vb763305825 的回复:
先解析xml,把数据都拿出来
要拿出来然后放到 datatable里面??拿出来后临时存储??
TK_Knigth 2013-07-01
  • 打赏
  • 举报
回复
引用 3 楼 Return_false 的回复:
string xmlStr = @"<DATE>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
<RS>
<JGBM>机构编码</JGBM>
<JGMC>机构名称</JGMC>
<LXR>联系人</LXR>
<GZC_QDSWYWZGSJ>取得涉外业务资格时间</GZC_QDSWYWZGSJ>
<BZ>备注</BZ>
</RS>
  </DATE>";
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(xmlStr);
                foreach (XmlNode xn in xmlDoc.SelectNodes("/DATE/RS"))
                {
                    string JGBM = xn.SelectSingleNode("JGBM").InnerText;//机构编码
                    string JGMC = xn.SelectSingleNode("JGMC").InnerText;//机构名称
                }
这个,取到里面的值??

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧