SqlConnection类--------与SqlServer建立连接

 

一、SqlConnection类简介

  • 语法:  public sealed class SqlConnection : DbConnection, ICloneable
  • 表示 与SQL Server 数据库的连接。 此类不能被继承。
  • 命名空间:  System.Data.SqlClient
    程序集:  System.Data(在 System.Data.dll 中)
  • SqlConnection 对象表示与 SQL Server 数据源的一个唯一的会话。 在客户端/服务器数据库系统中,它等效于一个到服务器的网络连接。 SqlConnection 与SqlDataAdapterSqlCommand 一起使用,以便在连接到 Microsoft SQL Server 数据库时提高性能。
  • 当创建 SqlConnection 的实例时,所有属性都设置为它们的初始值,如下表所示。只能使用 ConnectionString 属性更改这些属性的值 。

ConnectionString

空字符串 ("")

ConnectionTimeout

15

Database

空字符串 ("")

DataSource

空字符串 ("")

 

  • 如果 SqlConnection 超出范围,则不会将其关闭。 因此,必须通过调用Close或Dispose显式关闭该连接。 Close 和 Dispose 的功能等效。若要确保连接始终关闭,请在 using 块内部打开连接,如下面的代码段所示。 这样可确保在代码退出代码块时自动关闭连接。

             例如:

using (SqlConnection connection = new SqlConnection(connectionString))

  {

      connection.Open();

       // Do work here; connection closed on following line.

  }

  • 如果执行 SqlCommand 的方法生成SqlException,那么当严重级别小于等于 19 时,SqlConnection 将仍保持打开状态。 当严重级别大于等于 20 时,服务器通常会关闭 SqlConnection。 但是,用户可以重新打开连接并继续操作。
  • 下面的示例创建一个 SqlCommand 和一个 SqlConnection。 SqlConnection 打开,并设置为SqlCommandConnection。 该示例然后调用ExecuteNonQuery。 为了完成此任务,将为ExecuteNonQuery 传递一个连接字符串和一个查询字符串,后者是一个 Transact-SQL INSERT 语句。 当代码使用块退出时,连接自动关闭。

private static void CreateCommand(string queryString,

    string connectionString)

{

    using (SqlConnection connection = new SqlConnection(

               connectionString))

    {

        SqlCommand command = new SqlCommand(queryString, connection);

        command.Connection.Open();

        command.ExecuteNonQuery();

    }

}

 

 

二、两种构造函数

 

(1)public SqlConnection()

(2)public SqlConnection(string connectionString)

 

三、常用属性      

1、获取当前连接的状态-------State

   [ BrowsableAttribute(false)]

public override ConnectionState State { get; }

ConnectionState的枚举成员

Closed

连接处于关闭状态。

Open

连接处于打开状态。

Connecting

连接对象正在与数据源连接。 (该值是为此产品的未来版本保留的。)

Executing

连接对象正在执行命令。 (该值是为此产品的未来版本保留的。)

Fetching

连接对象正在检索数据。 (该值是为此产品的未来版本保留的。)

Broken

与数据源的连接中断。 只有在连接打开之后才可能发生这种情况。 可以关闭处于这种状态的连接,然后重新打开。 (该值是为此产品的未来版本保留的。)

2、获取或设置用于打开 SQL Server 数据库的字符串。-----------ConnectionString

      [SettingsBindableAttribute(true)]

public override string ConnectionString { get; set; }

连接字符串,其中包含源数据库名称和建立初始连接所需的其他参数

如果“Persist Security Info”值设置为 false(默认值),则返回的连接字符串与用户设置的 ConnectionString 相同但去除了安全信息。 除非将“Persist Security Info”设置为 true,否则,SQL Server .NET Framework 数据提供程序将不会保持,也不会返回连接字符串中的密码。

只有在连接关闭时才能设置 ConnectionString 属性

3、获取要连接的 SQL Server 实例的名称。---------DataSource

[BrowsableAttribute(true)]

public override string DataSource { get; }

如果 SqlConnection 的连接字符串为“context connection=true”,DataSource 属性将返回 null。

4、获取当前数据库的名称或连接打开后要使用的数据库的名称。----DateBase

public override string Database { get; }

Database 属性会动态更新。 如果使用 Transact-SQL 语句或 ChangeDatabase 方法更改当前数据库,就会发送信息性消息并自动更新此属性。

5、获取等待连接打开的时间(以秒为单位)。-----------ConnectionTimeOut

public override int ConnectionTimeout { get; }

 

四、常用方法

1、打开与数据库的连接---------Open

public override void Open()

2、关闭与数据库的连接--------Close

public override void Close()

此方法是关闭任何已打开连接的首选方法。

应用程序可以多次调用 Close。 不会生成任何异常。

 

3、public void Dispose ()

释放由 Component 使用的所有资源

 

4、关闭连接的 Close()方法和Dispose()的区别

   Close方法用于关闭一个连接,而Dispose方法不仅关闭一个连接,而且还清理连接所占用的资源。当使用Close方法关闭连接后,可以再调用Open方法打开连接。而若用Dispose方法关闭连接则不可以再次直接调用Open方法打开连接,必须初始化连接之后再打开即重新建立SqlConnection对象。

 

5、创建并返回一个与 SqlConnection 关联的 SqlCommand 对象--------CreateCommand

public SqlCommand CreateCommand()

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值