科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道[冷枫]ADO.NET的Connection对象的使用

[冷枫]ADO.NET的Connection对象的使用

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

ADO.NET的Connection对象的使用

作者:冷枫 来源:CSDN 2007年9月24日

关键字: 冷枫 ADO connection 对象

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

在ADO.NET对象模型中,Connection对象代表了与数据源之间的连接。.NET框架中有两个Connection对象:一个是OleDbConnection,用于大多数的数据库连接,一个是SqlConnection,是MS开发的专门用于针对SQL Server的连接。在创建Connection对象之前,你必须先引用System.Data.OleDb或者System.Data.SqlClient和System.Data三个名空间。

1.SQL Server数据库的连接   

   你可以使用Connection对象的属性来指定数据源的位置及其它参数来连接数据库。如:SqConnection con=new SqlConnection("Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=database;use id=yourid,password=yourpassword;");

这是连接到本地数据库,如果你想连到网络上的的数据库,就要利用集成安全性,同时忽略用户名和密码。如:

SqConnection con=new SqlConnection("Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=database;Integrated Security=SSPI");

如果使用的是ODBC连接到SQL Server,可以通过使用Trusted_Connection=yes;来使用网络数据库。

2.Oracle数据库的连接:(前提:必须先安装Oracle客户端实用工具的适当版本,并创建数据库别名,接着就可以用以下的连接字符串进行连接)

SqConnection con=new SqlConnection("Provider=MSDAORA;Data Source=dbAlias;User id=yourid,password=youpwd;);

3.Access数据库的连接:(你可以使用以下连接字符串来连接)

SqConnection con=new SqlConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\yourdb.mdb;User id=yourid,password=youpwd;);

连接到数据库之后即可调用Connection对象的Open()方法来打开与数据库的连接,同理Close()方法用来关闭与数据库的连接。

连接池:

      连接池是什么?在一个三层结构(或N层)中,当一个客户端与中间层服务器进行通讯的时候,服务器会创建一个与数据库连接,并执行操作的业务对象(也就是与数据库连接的实例),同时会创建一个Connection对象,在放在一个池中(实际上是一个线程)。当释放这个实例的时候,此实例便关闭,此时并没有真正的关闭数据连接,而是将Connection对象标记为关闭后存储在池中。如果这时再来启动一个新的业务对象,这时就会检查现有的连接,如果池中有打开的连接,即使用它,否则再创建一个新连接。

可能你会觉得很奇怪,如果这样,那池中不是有很多的对象,岂不是会浪费很多的资源,这个问题的解决方案是你可以设置与数据库的特定连接时间(默认60秒),如果在这个时间内未被使用,.NET提供就会关闭此连接。

      如何打开连接池?默认情况下是打开的.

      如何关闭连接池?可以使用OleDbConnection.ReleaseConnectionPool()方法来关闭连接池,更或者你可以在OLE DB连接字符串中加上OLE DB Services= - 4;在用SqlConnection对象时可在连接符中加上Pooling=False。这时你再调用Close()时候便会真正地关闭与数据库的连接。

(注1:可以使用SQL事件探查器或性能监视器来观察连接到数据库中的连接数目,以识别连接是否真正关闭或是只是放入池中。)

(注2:可以显式调用Dispose()方法在垃圾收集器回收之前释放资源,但如果你只是将Connection对象设为NULL的话,是不会断开与数据源的连接的)

      利用Connection对象来创建Command对象:(ADO.NET中用Command对象来执行数据查询,更新)例 :

SqConnection con=new SqlConnection("Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=database;Integrated Security=SSPI");

using (OleDbCommand cmd=con.CreateCommadn())

{

      cmd.CommandText="select * from table";

      cmd.ExecuteNonQuery();

}

(注:此处使用using 的好处是在进行此次操作后便可释放资源。)

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章