用Xml2OleDb将XML文件插入到数据库

原创 2004年07月09日 08:30: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=;

用Xml2OleDb将XML文件插入到数据库

原文:http://aspalliance.com/articleViewer.aspx?aId=477&pId=-1 作者:Andrew Mooney 翻译:孟子E章  [下载源代码http://a...
  • LiaoJinzhou
  • LiaoJinzhou
  • 2004年07月20日 15:10
  • 668

用Xml2OleDb将XML文件插入到数据库

原文:http://aspalliance.com/articleViewer.aspx?aId=477&pId=-1 作者:Andrew Mooney 翻译:孟子E章  [下载源代码http:/...
  • hejishan
  • hejishan
  • 2008年03月11日 12:07
  • 162

用Xml2OleDb将XML文件插入到数据库

原文:http://aspalliance.com/articleViewer.aspx?aId=477&pId=-1 作者:Andrew Mooney 翻译:孟子E章  [下载源代码http://a...
  • comeon_data
  • comeon_data
  • 2004年10月11日 11:09
  • 542

将XML文档写入数据库

1.在操练之前,先准备一个XML文件FirstXml.xml和FirstXml.xsd,并且这两个文件都在根目录下面,其内容分别如下:FirstXml.xml{       1     AAA  ...
  • qinghecool
  • qinghecool
  • 2007年12月04日 11:28
  • 5754

创建Xml文件,并解析该Xml数据,并插入数据库

工作中对xml的操作比较多,这里实现一种。使用dom4j解析xml、 流程: 创建xml----->然后解析--------》然后将数据用Log打印出来。 创建xml: package ...
  • xxm282828
  • xxm282828
  • 2014年03月31日 22:28
  • 2293

java实现读取XML文件数据插入到数据库中

package com.flxx.docUrl;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Res...
  • lsbhjshyn
  • lsbhjshyn
  • 2010年04月27日 12:10
  • 7847

使用文件流写Xml文件时得到的一个小经验 .

假设一个写入XML文件的上下文情景 //打算将这个DataSet对象的内容写入xml文件中 DataSet dataSet = new DataSet("Example"); //首先以文件...
  • zjlovety
  • zjlovety
  • 2012年05月29日 15:49
  • 2097

解析xml文件,并把解析结果存储到android的SQLite数据库

以下面xml文件为例对其解析(假设此xml就在服务器端Server项目下的servlet包下的MenuServlet文件的输出流中): - - 1 1 水煮鱼 ...
  • Mary881225
  • Mary881225
  • 2012年03月15日 19:38
  • 6184

JAVA学习之 将xml导入到数据库

我们知道向数据库中插入数将xml导入到数据库将xml导入到数据库据的方式有很多种,以前接触最多的都是通过sql语句简单的插入一条数据,今天要学习是将xml中的数据一次添加到数据库中:      首...
  • jly4758
  • jly4758
  • 2014年09月27日 15:20
  • 6395

php 向数据库表中插入数据

php插入数据页面insertData.php             向数据库中插入数据                                         ...
  • bkcnl
  • bkcnl
  • 2017年07月17日 16:51
  • 2571
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用Xml2OleDb将XML文件插入到数据库
举报原因:
原因补充:

(最多只允许输入30个字)