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()

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的。建立数据库连接需要使用相应的数据库驱动和连接字符串。如果您是使用 Python 来连接 SQL Server 数据库,那么可以使用 pyodbc 模块来连接数据库。 首先,您需要安装 pyodbc 模块。这可以使用 pip 包管理工具安装: ``` pip install pyodbc ``` 然后,您需要准备连接字符串。连接字符串包含了所有必要的信息来连接数据库,包括数据库服务器地址、用户名、密码等。 连接字符串的格式是固定的,但是您需要替换其中的一些占位符,例如您的数据库服务器地址、用户名、密码等。下面是一个例子: ``` 'Driver={ODBC Driver 17 for SQL Server};Server=tcp:<server_name>.database.windows.net,1433;Database=<database_name>;Uid=<username>@<server_name>;Pwd=<password>;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;' ``` 接下来,您可以使用 pyodbc 模块的 connect 函数来连接数据库,代码示例如下: ``` import pyodbc # Replace '<server_name>', '<database_name>', '<username>', and '<password>' with your actual values conn_str = 'Driver={ODBC Driver 17 for SQL Server};Server=tcp:<server_name>.database.windows.net,1433;Database=<database_name>;Uid=<username>@<server_name>;Pwd=<password>;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;' conn = pyodbc.connect(conn_str) # Now you can run SQL queries using the 'cursor' object cursor ### 回答2: 建立数据库连接是将应用程序数据库之间建立通信连接的过程,以便应用程序能够与数据库进行数据交互和操作。对于SQL Server数据库,以下是建立连接的步骤: 1. 准备数据库连接字符串:连接字符串是包含数据库连接信息的字符串,通常包括服务器名、数据库名、用户名、密码和其他可选的连接参数。连接字符串的格式可以根据具体的需求来调整。 2. 导入SQL Server提供的相关命名空间:在应用程序代码中,需要导入SQL Server提供的相关命名空间,以便使用数据库连接相关的和方法。 3. 建立数据库连接对象:使用连接字符串初始化一个SqlConnection对象,该对象表示与数据库的物理连接。 4. 打开数据库连接:通过调用SqlConnection对象的Open()方法,打开与数据库连接。在此之前,应确保数据库服务器在运行状态,并且网络连接正常。 5. 执行SQL语句或存储过程:连接成功后,可以通过SqlConnection对象创建SqlCommand对象,并将SQL语句或存储过程作为参数传入。然后使用ExecuteNonQuery()、ExecuteScalar()或ExecuteReader()方法执行相应的操作。 6. 关闭数据库连接:在结束数据库操作后,通过调用SqlConnection对象的Close()方法,关闭与数据库连接。这一步很重要,确保释放数据库资源,并释放服务器上的连接。 以上就是建立SQL Server数据库连接的基本流程。在实际应用中,我们还应注意一些细节,例如异常处理、连接池的使用以及性能优化等,以确保应用程序能够安全、高效地与数据库进行数据交互。 ### 回答3: 要在SQL Server建立数据库连接,首先需要确保SQL Server已安装并运行。然后可以按照以下步骤建立数据库连接: 1. 打开SQL Server管理工具(如SQL Server Management Studio)或使用编程语言中的相关API。 2. 在连接界面中,输入服务器名称(通常是计算机的名称或服务器IP地址)。 3. 选择身份验证型,可以是Windows身份验证或SQL Server身份验证。如果选择SQL Server身份验证,需要输入用户名和密码。 4. 点击“连接”按钮或执行连接相应的API命令,以尝试建立连接。 5. 如果连接成功,将打开数据库管理界面,显示服务器上的数据库列表。 6. 选择要连接数据库,如果数据库不存在,可以创建一个新的数据库。 7. 可以执行SQL查询或操作数据库的其他操作。 要正确建立数据库连接,需要确保以下几点: - 确保SQL Server的网络配置正确,允许来自连接客户端的连接请求。 - 使用正确的服务器名称和身份验证型。 - 如果选择SQL Server身份验证,确保输入正确的用户名和密码。 - 确保连接客户端(如管理工具或编程语言)已正确地安装和配置。 建立数据库连接是进行数据库管理和数据操作的前提,可以通过连接进行各种查询、插入、更新等操作。连接的成功与否取决于网络配置、服务器状态和身份验证等因素,因此确保正确建立连接是使用SQL Server进行数据库操作的重要一步。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值