轻松访问ADO.NET数据库

ZDNet软件频道 时间:2002-12-24 作者:BUILDER.COM |  我要评论()
本文关键词:
尽管ADO.NET和ADO有一些共通的概念,但是当你首次使用.NET数据库的新访问库时,它们之间就体现出了很大的不同。

尽管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方法,所以不要尝试这么做。


让连接字符串正常工作
把连接字符串放到一起交给你的数据提供商,这有时会是打开连接最具挑战性的方面。如果你碰到了麻烦,一个好的出发点就是使用VS.NET里的Server Explorer来创建连接字符串,然后再把它复制和粘贴到你的代码里。


要连接到叫做SomeServer的SQL服务器上的NWIND数据库,我会使用下面的代码:

SqlConnection cn = new SqlConnection("Data Source=SomeServer; _

Initial Catalog=NWIND; Integrated Security=true;");

cn.Open();

要注意,如果你的SQL服务器没有使用域安全,那么你就需要指定用户ID和密码元素,并把“集成安全”的声明从连接字符串里删掉。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134