| 搜索频道 | 源码下载 | 站长代码论坛 | 文章分类 | 最新专题 | 源码交易 | 加入收藏
首页|资讯|图形图像|网站开发|程序设计|数据库|多媒体|机械电子|办公系列|路由技术|原理|应用|考试|系统
文章搜索:
 您的位置:首页网站开发XML → 用Xml2OleDb将XML文件插入到数据库
用Xml2OleDb将XML文件插入到数据库

日期:2006-7-12 11:51:00 人气:     [ ]
Xml2OleDb简介
XML是互联网共享数据的最好的方法,XML格式的数据可以很轻松的集成到不同的Web应用中去。但如果你想将XML文件插入到数据库,怎么办?Xml2OleDb将向您说明往OleDb数据库,比如SQL Server, Access, Excel, Visual FoxPro, FoxPro, and dBase等插入XML文件的数据是如何轻松。

首先,将XML文件装载进DataSet,并得到第一个表,这个表就是我们要加入到数据库的DataTable;接下来,去除XML文件的扩展名,文件名字去掉扩展名将是我们数据库中使用的表名。如果XML格式不准确,将会报告错误,源代码中有XML文件格式的例子。参见Authors.xml

// 装载我们提交的XML文件到DataSet
dataSetXml.ReadXml(HttpContext.Current.Server.MapPath(textBoxXml.Text));
// 得到DataSet中的第一个表
dataTableXml = dataSetXml.Tables[0];
// 生成表名
tableName = textBoxXml.Text.Substring(0,textBoxXml.Text.Length -4);

一旦XML装载成功,首先检查数据表是否有数据(rows),接下来检查数据库是否存在表,如果不存在就创建一个;然后将数据从XML插入到数据库中。

// 检查是否有数据存在(rows)
if(dataTableXml.Rows.Count > 0)


创建数据库表
创建数据库连接,得到我们要添加表的数据库架构信息。

// 创建数据库连接,打开数据库,得到数据库表的架构信息
OleDbConnection oledbConn = new OleDbConnection(textBoxOleDb.Text);
oledbConn.Open();
DataTable schemaTable =
oledbConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
new object[] {null, null, tableName, "TABLE"});

// 检查表是否存在,如果存在在DataTable中将有一条记录
if(schemaTable.Rows.Count < 1)


sqlCmd = "create table " + tableName + " (";
for(int i = 0;i < dataTableXml.Columns.Count;i++)
{
// 添加列text/string type 长度 100
sqlCmd = sqlCmd + dataTableXml.Columns[i].ColumnName.ToString() + " char(100),";
}
sqlCmd = sqlCmd .Substring(0,sqlCmd.Length - 1) + ");";
OleDbCommand oledbCmd = new OleDbCommand(sqlCmd,oledbConn);
oledbCmd.ExecuteNonQuery();


添加XML数据到数据库

// 遍历DataTable中的Rows
foreach(DataRow dr in dataTableXml.Rows)
{
string sqlCmd = "insert into [" + tableName + "] (";
// 遍历Datatable的列
for(int i = 0;i < dataTableXml.Columns.Count;i++)
{
// 添加column name
sqlCmd = sqlCmd + dataTableXml.Columns[i].ColumnName.ToString() + ",";
}
sqlCmd = sqlCmd.Substring(0,sqlCmd.Length - 1) + ") values (";
// 遍历 DataTable columns
for(int x = 0;x < dataTableXml.Columns.Count;x++)
{
// 添加column value到row
sqlCmd = sqlCmd + "'" + dr[x].ToString().Replace("'","''") + "',";
}
sqlCmd = sqlCmd.Substring(0,sqlCmd.Length - 1) + ");";
OleDbCommand oledbCmd = new OleDbCommand(sqlCmd,oledbConn);
oledbCmd.ExecuteNonQuery();
}


注意的问题:
测试时先下载源代码,创建一个空的数据库,设置可修改权限Database.mdb,Database.xls,对FoxPro/dBase 创建空目录

连接字符串例子:
Access: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\data\database.mdb;
Excel: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\data\database.xls;Extended Properties=Excel 8.0

FoxPro/dBase: Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\data;Extended Properties=dBASE IV;
SQL Server: Provider=SQLOLEDB; Data Source=localhost; Initial Catalog=database;User ID=sa;Password=;

出处:本站原创 作者:zzcode
 相关文章
·利用oleDB对象,将数据库中全部表转换成XML文件
·如何用VB访问外来数据库
·用数据库保存VB程序的用户设置
·VB5.0数据库编程经验小集
·如何设置对VB数据库连接的动态路径
·StatusBar显示数据库的属性
·在Access数据库中实现密码管理的另一种方式
·jboss3.0+tomcat4.06配置MySQL数据库
·MySQL数据库类的定义
·备份和拷贝MYSQL数据库
 相关软件
·贝贝免费电影HTML完美版(带本站所有数据库)
·采飞扬ASP备份MSSQL数据库程序 V1.0
·深博贴吧(仿百度)双数据库版 v2.0
·ASP数据库网站开发实例
·腾讯QQ IP数据库 Build 1210 纯真版
·曙光web数据库管理工具
·《ASP与相关数据库技术高级指南》源代码
·《ASP实用技术——网络数据库应用系统设计》电子..
· QQ IP数据库 纯真版 0825
·25175 数据库计数器 v1.72
 

 热点文章

·XML新增批注、处理指令..
·用ASP、VB和XML建立互..
·XML 中的常见问题
·带可选项、带图片的无..
·将XML文件链接至HTML网..
·用XML实现国家、省的动..
·构造未来Web页面的工具..
·简单的XML留言板
·web.xml中的 security..
·使用xmlhttp 实现多文..
·XML与其相关技术
·简析JAVA的XML编程
·利用XML不离开页面刷新..
·SQL Server和XML的集成..
·修改大型 XML 文件的有..

 推荐文章

·端午非物质文化遗产登..
·动态网站Web开发PHP、..
·PS绘中秋佳节的一轮明..
·细谈网页优化和网站优..
·建站常识:如何使用FT..
·如何快速建造一个成功..
·ASP.NET 2.0 中的创建..
·ASP.NET2.0服务器控件..
·在ASP.NET应用中插入f..
·用Photoshop打造逼真立..
·Windows 2003搭建虚拟..
·站长必读:Web创业的1..
·如何测试机房的速度和..
·北京奥运体育图标发布..
·网络视频广告将身价百..