基于.NET平台的关系数据库转换

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:LQ0121
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:.NET平台的优势结合XML技术,提供了关系数据库之间转换的可能。通过实例演示了其可行性,将SQL Server数据库转换为XML文件,继而将XML文件转换为其他关系数据库,实现了多种关系数据库之间的数据转换。
  关键词:数据库转换;.NET;XML
  中图分类号:TP311.13文献标识码:A 文章编号:1009-3044(2008)26-1615-02
  Relational Databases Conversion Based on .NET Platform
  HU Shu-gang
  (Dongying Vocational College, Dongying 257091, China)
  Abstract: Combining the advantages of XML technology,.NET platform provides the feasibility of data conversion between relational databases. One example demonstrated the SQL Server database can be converted to an XML file, and then the XML file can be converted to other database. It has realized the data conversion between relational databases.
  Key words: database conversion; .NET; XML
  
  1 引言
  
  网络资源中通常包含多种格式和管理系统的关系数据库,为了实现资源的共建共享,需要完成多种数据库之间的数据转换。不同的开发商采用分布式对象技术和各自的思路来实现数据库的互操作,如OMG的CORBA技术、Sun公司的EJB/RMI和微软的.NET技术等。
  
  2 数据库转换思路
  
  .NET是微软公司开发的下一代基于互联网平台的软件开发构想,它提供了一个全新的编程模型。该平台建立在XML和因特网标准协议的基础上,具有平台独立性和语言独立性,它包含了强大数据库操控能力的ADO.NET。ADO.NET编程模型由一系列的数据库相关类和接口组成,运用ADO.NET技术,应用程序既能访问关系型数据库中的数据,又能访问层次化的XML数据[1]。XML是W3C发布的通用标记语言SGML的一个简化子集。它是一种存储和传输数据的行业标准格式,普遍贯穿于.NET平台,具有简单性、可扩展性、互操作性和开放性等特点,其本质特点是数据独立,它存储的数据全部是文本,而且使用标记标示,利于网络传输。XML模式提供了很强的数据类型识别功能,可正确处理各种数据类型。XML和.NET的结合为解决数据库互操作问题奠定了基础[2]。通过以上分析,可以在.NET平台上,以XML为中间数据源完成多种关系数据库之间的转换[3]。演示示例用的操作系统是Windows XP Professional,开发平台为Visual Studio 2005,示例用C#语言编写。
  2.1 数据库的导入[4]
  为了导入SQLServe数据库,先用Connection对象连接数据库,演示示例中用SqlConnection连接了服务器METC\SQLEXPRESS的数据库books.mdf。将数据库读入DataSet。DataSet对象主要存放数据库的DataTable的对象,可以使用DataAdapter建立DataSet对象。尽管DataSet可以存储数据,但仍需要使用DataAdapter对象来创建和初始化各种表,还需要使用Fill()方法来把查询结果移入到DataSet中去,再将数据写入到XML文件。关键源代码如下。
  String strTableName = "books";
  String strConnection = "server=METC\\SQLEXPRESS;database=books;uid=sa;pwd=;trusted_connection=yes ";
  String strSql = "select * from " strTableName;
  SqlConnection objConn = new SqlConnection(strConnection);
  SqlDataAdapter objAdapter = new SqlDataAdapter(strSql, objConn);
  DataSet objDSet = new DataSet();
  objAdapter.Fill(objDSet, "temp");
  XmlTextWriter objXmlWriter;
  String strtemp1 = Request.PhysicalApplicationPath;
  String strpath = strtemp1 "newxml.xml";
   objXmlWriter = new XmlTextWriter(strpath, null);
   objXmlWriter.WriteStartDocument();
  objXmlWriter.WriteStartElement("xml");
  for (int i = 0; i < objDSet.Tables["temp"].Rows.Count; i )
  {
  objXmlWriter.WriteStartElement("menu");
  for (int j = 0; j < objDSet.Tables["temp"].Columns.Count; j )
  {
  objXmlWriter.WriteAttributeString(objDSet.Tables["temp"].Columns[j].ColumnName, objDSet.Tables["temp"].Rows[i][j].ToString());
   }
  objXmlWriter.WriteEndElement();
  }
  objXmlWriter.WriteEndElement();
  objXmlWriter.WriteEndDocument();
  objXmlWriter.Close();
  2.2 數据的导出[5-6]
  以下演示示例是将以上创建的“newxml.xml”文件转换为Access数据库demo.mdb中的一个表“newxml”。首先建立与目标数据库的连接,也就是通过OLE DB Provider提供的OleDBConnection对象建立与Access数据库demo.mdb的连接。当然,该示例也可通过OLE DB Provider提供的其他连接数据库的对象来连接Oracle、Sybase或DB2这样的数据库以及Excel表格。以下关键源代码部分省略了命名空间的引用、系统自生成代码和对数据库中表是否建立的检查部分。
  private void TableCheck()
  { OleDbConnection oledbConn = new OleDbConnection(textBoxOleDb.Text);
  Try
  { oledbConn.Open();
  DataTable schemaTable = oledbConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] {null, null, tableName, "TABLE"});
  String sqlCmd = "";
  if(schemaTable.Rows.Count < 1)
  {sqlCmd = "create table " tableName " (";
   for(int i = 0;i < dataTableXml.Columns.Count;i )
   {sqlCmd = sqlCmd dataTableXml.Columns[i].ColumnName.ToString() " char(100),";}
   sqlCmd= sqlCmd .Substring(0,sqlCmd.Length - 1) ");";
   OleDbCommand oledbCmd = new OleDbCommand(sqlCmd,oledbConn);
   oledbCmd.ExecuteNonQuery();}
   }
   catch
   {Message.Text = "数据库不存在或无法创建表.";}
   finally
   {oledbConn.Close();}
  }
  private void TableInsert()
  { OleDbConnection oledbConn = new OleDbConnection(textBoxOleDb.Text);
   try
   { oledbConn.Open();
   foreach(DataRow dr in dataTableXml.Rows)
   { string sqlCmd = "insert into [" tableName "] (";
   for(int i = 0;i < dataTableXml.Columns.Count;i )
   {sqlCmd = sqlCmd dataTableXml.Columns[i].ColumnName.ToString() ",";}
   sqlCmd= sqlCmd.Substring(0,sqlCmd.Length - 1) ") values (";
   for(int x = 0;x < dataTableXml.Columns.Count;x )
   {sqlCmd = sqlCmd "’" dr[x].ToString().Replace("’","’’") "’,";}
   sqlCmd = sqlCmd.Substring(0,sqlCmd.Length - 1) ");";
   OleDbCommand oledbCmd = new OleDbCommand(sqlCmd,oledbConn);
   oledbCmd.ExecuteNonQuery();
   }
   }
  }
  
  3 結束语
  
  通过以上实例,演示了以XML为中间转换数据源,在.NET平台上方便地完成异构关系数据库之间的数据转换和共享。基于.NET平台,充分利用XML技术的优势,来解决异构数据库集成的问题,能够给用户提供一个透明的全局数据库,方便用户的使用,还使得系统在可扩展性、安全性、可维护性等方面有所提高。
  
  参考文献:
  [1] Lair R, Lefbvre J.ASP.NET开发人员手册[M].张俊,译.北京:电子工业出版社,2002:38-39,169-193,246-488.
  [2] Bray T, Paoli J, Sperberg-McQueen C M, et al.XML标准[EB/OL].[2006-08-16].http://www.w3.org/TR/2006/REC-xml-20060816/.
  [3] 石玉晶,牛存良,马新娜.使用XML进行异构数据库间数据传送[J].现代计算机,2003,19(11):79-80.
  [4] 吕品,夏红霞,李明.异构数据库互操作平台的开发研究[J].武汉理工大学学报,2003,25(1):35-37.
  [5] 李应伟,姚素霞,景丽.ASP.NET数据库高级教程(C#篇)[M].北京:清华大学出版社,2004:44-58,116-140.
  [6] 郭广军,刘凤龙,胡玉平..NET中基于XML的非连接数据访问与同步技术研究[J].现代计算机,2005,(4):4-9.
其他文献
摘要:随着计算机及网络技术的迅猛发展,实时、高效、安全地管理计算机,更好地共享资源的各种技术成为人们研究的重点。本文针对传统C/S管理模式存在的问题,提出采用WMI技术来实现对计算机进行高效管理的方法,并给出获取远程计算机信息和远程控制计算机的具体实现。  关键词:WMI;C/S;远程控制;WMI脚本;VB.NET  中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2008)
摘要:介绍了一种基于ARM的嵌入式系统的设计方法;首先简要介绍了嵌入式硬件设计方案,然后重点阐述了BootLoader程序的设计、uCLinux的编译与移植,最后对uCLinux下的网络编程进行了分析。  关键词:ARM;嵌入式系统;linux;BootLoader  中图分类号:TP274文献标识码:A文章编号:1009-3044(2008)09-11724-02    The Design a
摘要:本文详细介绍了几种VisualBasic访问数据库的方法并对这些数据接口的性能进行了比较,提出相互的转化关系,以便于选取最佳方案。  关键词:Visual Basic 数据访问接口DAORDOADO  中图分类号:TP31文献标识码:A文章编号:1009-3044(2008)15-21008-02    Probe into Access to Database by VB  XIE Bin
摘要:提取图形的形状特征是当前图像处理领域的重要研究内容,而图形的边缘轮廓又能很好地反映形状的信息,因此本文阐述了如何利用matlab较好的提取图形的轮廓,以及将简单轮廓图形填充起来作为形状图形进行研究的算法及代码实现。  关键词:图形;轮廓;膨胀;填充  中图分类号:TP317文献标识码:A 文章编号:1009-3044(2008)09-11722-02    Extraction and Fi
摘要:随着中国电信业的重组,中国移动、中国联通、中国电信将成为国内三家3G运营商。该文从运营商3G业务的发展模式入手,结合当前中国移动通信业务的渠道建设及发展现状,论述了中国电信社会渠道建设的重要意义,并对社会渠道的管理提出了具体的措施。  关键词:3G;中国电信;渠;社会渠道  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)24-1172-02  The Impor
摘要:在程序设计课程教学中,如何解决程序设计本身枯燥、难懂这个问题,找到一条比较新颖的教学方式,一直是广大计算机教师颇感兴趣的课题。该文从如何提高VB程序设计课程教学质量、增强教学效果、培养和提高学生分析问题、解决问题能力和创新能力等方面,阐述了对VB程序设计教学方法的几点看法。  关键词:程序设计;教学方法;能力  中图分类号:G642文献标识码:A文章编号:1009-3044(2008)31-
摘要:在数据仓库的开发中,随着业务数据量的剧增以及其数据量增加的不稳定性,如何使用一种合适的方式来实现ETL(数据的抽取,转换,装载)成为在数据仓库开发中最需要考虑的热点。本文介绍一种可以实现数据仓库ETL的技术——Oracle物化试图,并以作者在数据仓库开发实践作为例子,具体说明Oracle物化试图的实现方法。  关键词:数据仓库;ETL;物化试图;物化试图日志;增量抽取  中图分类号:TP31
摘要:无线局域网作为一种无线接入技术得到了迅速的发展,但是它的安全机制却存在很大的安全隐患。如何保证无线局域网的安全性已成为目前重要的研究课题。其中,认证机制是安全机制的重要内容。无线局域网采用IEEE 802.1x协议认证。本文针对IEEE802.1x协议容易受到中间人攻击和会话截取的缺陷,提出了协议的改进方案。主要在现有的IEEE802.1x协议的基础上增加客户端和接入点AP之间的相互认证。 
银花丝 左:9cm×12cm 右:15cm×9cm 2003年  该作品由国家级非物质文化遗产(银花丝制作技艺)的传承人、四川省工艺美术大师道安老师设计制作完成。  作品由不同大小、不同形态的牡丹花组合而成,象征花开富贵,并采用了上千年的“成都银花丝的制作技艺”先将图案進行设计、分解、放样。然后再通过手工撮合、碾压等工艺制作成所需要的花丝,根据设计好的图案进行“平填”制作,然后焊接成型。该件作品同
摘要:介绍了ATA及ATA考试平台,阐述了ATA考试的特点,结合长沙民政职业技术学院非计算机专业学生学习计算机的学习及考核方法,分析ATA考试及全国计算机等级考试两种考试方法在高职院校学生学习过程中的适用性,总结了ATA考试的优点及发展的可行性。  关键词:ATA;ATA平台;NCRE  中图分类号:G642文献标识码:A文章编号:1009-3044(2008)08-11ppp-0c    ATA