C#怎样才能将XML文件导入SQLServer
2023-06-13 09:14:42 时间
问:怎样才能将XML文件导入SQLServer2000?
答:将XML文件导入SQLServer有若干种方法,这里提供其中的3种:
大容量装载COM接口。如果需要将文档的实体和属性析取到关系表中,最快的方法就是使用SQLServer2000ExtensibleMarkupLanguage3.0ServicePack1(SQLXML3.0SP1)提供的大容量装载COM接口。大容量状态COM接口包含在SQLXML3.0SP1的免费下载中。
textcopy.exe命令行实用工具。如果不希望将文档的实体和属性析取到关系表中,您可以使用textcopy.exe命令行实用工具。Textcopy.exe是将文本和image数据类型从单一服务器行或列移入或移出的优秀工具。
数据转换服务(DTS)。如果XML文档很简单,您可以使用DTS将信息逐行析取到表中。这一方法要求您将XML文件定义为输入数据源,将数据库表定义为输出数据源,并编写ActiveX脚本剖析"<"和">"方式的字符输入,以析取实体、属性及其值。
要导入的Xml文件:
<?xmlversion="1.0"encoding="gb2312"?>
<Tbl_UpdateLogs>
<Table>
<id>32</id>
<title>新增执法机构页面</title>
<content>qqqqqq</content>
<module>组织机构</module>
<updateTime>2009-07-31T00:00:00+08:00</updateTime>
<operator>王永刚</operator>
</Table>
<Table>
<id>33</id>
<title>执法人员资格页面</title>
<content>大幅度放到大幅度放到</content>
<module>组织机构</module>
<updateTime>2009-07-29T00:00:00+08:00</updateTime>
<operator>王永刚</operator>
</Table>
<Table>
<id>34</id>
<title>111111</title>
<content>dfdwdd</content>
<module>qwqwq</module>
<updateTime>2009-07-29T00:00:00+08:00</updateTime>
<operator>wyg</operator>
</Table>
<Table>
<id>35</id>
<title>qq</title>
<content>fjdldldsss</content>
<module>qqqqqqq</module>
<updateTime>2009-07-30T00:00:00+08:00</updateTime>
<operator>wyg</operator>
</Table>
<Table>
<id>36</id>
<title>2009222</title>
<content>ddddd</content>
<module>22</module>
<updateTime>2009-07-31T00:00:00+08:00</updateTime>
<operator>wyg</operator>
</Table>
<Table>
<id>37</id>
<title>1234455</title>
<content>ddddddd</content>
<module>11111</module>
<updateTime>2009-07-31T00:00:00+08:00</updateTime>
<operator>wyg</operator>
</Table>
</Tbl_UpdateLogs>
///<summary>
///读取Xml文件,获得所有节点的Value值
///</summary>
///<paramname="fileName">Xml文件名</param>
///<paramname="filePath">存放的路径</param>
///<paramname="rootName">Xml根节点名称</param>
///<returns></returns>
publicvoidImportXmlFile(stringfileName,stringfilePath,stringrootName)
{
stringloadPath=HttpContext.Current.Server.MapPath(filePath+fileName);
try
{
XmlDocumentxmldoc=newXmlDocument();
xmldoc.Load(loadPath);
//获取根节点<rootName>的所有子节点
XmlNodeListmyNodeList=xmldoc.SelectSingleNode(rootName).ChildNodes;
//遍历<根节点>的所有子节点
foreach(XmlNodemyXmlNodeinmyNodeList)
{
XmlNodeListsubNodeList=myXmlNode.ChildNodes;
UpdateLogsupdateLog=newUpdateLogs();
foreach(XmlNodesubXmlNodeinsubNodeList)
{
switch(subXmlNode.Name)
{
case"id"://节点的名称,加这个条件是因为<!---->这些节点也会被读出来
updateLog.ID=int.Parse(subXmlNode.InnerText.Trim());
break;
case"title":
updateLog.Title=subXmlNode.InnerText.Trim();
break;
case"content":
updateLog.Content=subXmlNode.InnerText.Trim();
break;
case"module":
updateLog.Module=subXmlNode.InnerText.Trim();
break;
case"updateTime":
updateLog.UpdateTime=DateTime.Parse(subXmlNode.InnerText.Trim());
break;
case"operator":
updateLog.Operator=subXmlNode.InnerText.Trim();
break;
default:
break;
}
}
if(isExstsById(updateLog.ID.ToString()))
{
UpdateLog(updateLog);
}
else
{
InsertLog(updateLog);
}
}
File.Delete(loadPath);
BindData();
ClientScript.RegisterStartupScript(typeof(string),"importLog","<script>alert("导入成功!");</script>");
}
catch(Exceptionex)
{
ExceptionManager.Handle(ex);
}
}
相关文章
- 【C#】 Mutex简单示例
- C#设计模式——(结构型-享元设计模式)
- 在C#中如何List去除重复元素?
- C#-DataGrid
- 【Android 逆向】ART 脱壳 ( dex2oat 脱壳 | /art/dex2oat/dex2oat.cc#Dex2oat 函数源码 )
- Sqlserver 数据库的自增特性分析(自增 sqlserver)
- 收费背后的原因:SQLServer究竟值不值得(sqlserver被收费)
- SqlServer:索引页上的起航之旅(sqlserver索引页)
- 『SqlServer数据库中的分组功能』(sqlserver的分组)
- 表SqlServer快速生成精美图表(sqlserver生成图)
- 基于SQLServer框架的数据库开发(sqlserver 框架)
- 本SQLServer 2021:最新技术为精英数据库管理带来新变化(sqlserver最新版)
- 六使用SQLServer迎接星期六的喜悦(sqlserver 星期)
- 使用SQLServer计算平方的完美实现(sqlserver 平方)
- 右开SQLServer:以左闭右开原则区分范围(sqlserver左闭)
- c#引用类型和值类型
- 关于c#中枚举类型支持显示中文的扩展说明
- C#传值方式实现不同程序窗体间通信实例
- c#开发word批量转pdf源码分享
- c#调用arcgis地图rest服务示例详解(arcgis地图输出)
- C#实现窗体中的各个控件同比自动放缩大小