日期:2014-05-17  浏览次数:20903 次

C# xml文件数据 写入数据库问题
本帖最后由 mb892535077 于 2013-03-07 09:52:59 编辑
请教各位大神,xml文件中已存数据 和 表结构,请问怎么将其插入数据库,数据和表结构不是固定的,就是要灵活性的那种,用c#语言怎么实现? 拜托各位大神了

------解决方案--------------------
XML数据可遍历读取,也可转DataTable
------解决方案--------------------
读取XML 创建表,插入数据。
------解决方案--------------------
符合xml格式规范,用下面这个

/// 通过传入的xml文件路径(含文件名),将格式化的Xml文件自动读取转换为DataSet。
public static DataSet GetDataSetByXmlpath(string strXmlPath)
{
           try
           {
               DataSet ds = new DataSet();
               //读取XML到DataSet 

               StreamReader sr = new StreamReader(strXmlPath, Encoding.Default); 

               ds.ReadXml(sr); 

               sr.Close(); 

               if (ds.Tables.Count > 0)
                   return ds;
               return null;
           }
           catch (Exception)
           {
               return null;
           }
}


不符合规范,只有解析读取
------解决方案--------------------

CREATE PROCEDURE [dbo].[P_Test]
(
     @xml         xml            =null )
AS
BEGIN
--批量更新
 update tableA set stat=u.c.value('testID[1]','int')
 from @xml.nodes('(/root/Test)')  u(c) where tableA .ID=u.c.value('ID[1]','int')
END  

使用@xml和表一样,MS你上面的@xml文件很不规则,具体在实际业务中看是否可以应用.