什么是ADO.NET以及基于XML的数据库访问等数据库访问机制?
如何来理解???

解决方案 »

  1.   

    转载:
    ---------------------------------------------------------
    尽管ADO.NET和ADO有一些共通的概念,但是当你首次使用.NET数据库的新访问库时,它们之间就体现出了很大的不同。要理解如何使用ADO.NET的第一步是要理解你将在其子命名空间里找到什么东西:System.Data.SqlClient所包含的类是连接到SQL服务器数据源所需要用到的。 
    System.Data.OleDb是用来连接OLE-DB数据源的。 
    System.Data.Common所包含的普通类是提供商专用类的基础。 
    System.Data包含有一大套独立于提供商的类,它们用于对数据库的高层进行访问很有用。 
    System.Data.SqlTypes提供了一些有用的类,能把.NET数据类型转化成SQL服务器本地数据类型,及其反向操作。 你应该使用哪种连接类?正如你刚才看到的那样,在.NET里有两套连接类,在SqlClient和OleDb命名空间里可以找得到。那么这两者有什么不同呢?SqlClient类使用本地SQL服务器驱动程序来访问数据库,而OleDb类使用通用OLE-DB接口。在把SQL服务器放在后端使用的时候,SqlClient类和更加通用化的OLE-DB接口相比较而言会有性能上的优势,所以你应该使用前者来连接到SQL服务器。
    为了简单起见,我会假设你在本文后面的内容中将一直使用SQL服务器。但是,我将谈到的类也能适用于OLE-DB后端,所以很欢迎你有耐心往下看,尽管你使用的可能是另一种不同的数据库后端。你会需要用等同的OleDb类来替换SqlClient类,你也可能需要稍稍修改一下连接字符串,但是样本代码应该也能被你用上。使用ADO.NET的连接就像先前的ADO一样,ADO.NET需要依赖链接对象来表示打开的数据源。但是ADO.NET里的连接和你在ADO里找到的不一样。我已经触及到了一个很大的不同点:有一些连接是专门用于某些数据源的,它们允许软件生产商创建专门的连接类,这些类能用它们数据库的本地接口,来提供额外的功能或者比OleDb类更高的速度。在这里我没有足够的篇幅来谈及所有的类,但是在MSDN Web网站可以查到更多的信息。
    .NET Framework的SQL服务器专用连接类使用System.Data.SqlClient.SqlConnection,所以为了连接到SQL服务器的数据库,你就要创建一个SqlConnection的实例。在创建连接对象的过程中,在调用构造函数的时候,你可以指定连接字符串,也可以坚持使用原有的方法,即通过ConnectionString属性来设置连接字符串。但是你不能把这个字符串传递到Open方法,所以不要尝试这么做。ADO.NET的一个相当好的特性是:它能够使用数据库里的数据,就好像它是一个XML流。ExecuteXmlReader方法返回一个System.Xml.XmlReader对象,你可以使用这个对象来阅读从命令返回的数据,就好像它是一个XML文档一样。在这里我不会深入到如何使用XmlReader,但是如果你不熟悉XmlReader的话,我建议你去读读《学会使用.NET的XML类来读取和编写XML》。