SqlConnection
类用于建立到SQL Server数据库的开放连接。这是一个封闭的类,所以不能被继承。连接到Microsoft SQL Server数据库时,SqlConnection
类与SqlDataAdapter
和SqlCommand
类一起使用来提高性能。
即使连接超出范围,连接也不会明确关闭。 因此,在代码中必须通过调用Close()
方法显式关闭连接。
SqlConnection类签名
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable, IDisposable
SqlConnection类构造函数
编号 | 构造函数 | 描述 |
---|---|---|
1 | SqlConnection() | 它用于初始化SqlConnection 类的新实例。 |
2 | SqlConnection(String) | 它用于初始化SqlConnection 类的新实例,并将连接字符串作为参数。 |
3 | SqlConnection(String, SqlCredential) | 它用于初始化一个带有两个参数的SqlConnection 类的新实例。首先是连接字符串,其次是SQL凭据。 |
SqlConnection类的方法
编号 | 方法 | 描述 |
---|---|---|
1 | BeginTransaction() | 它用于启动数据库事务。 |
2 | ChangeDatabase(String) | 它用于更改当前数据库以打开SqlConnection 。 |
3 | ChangePassword(String, String) | 它会更改连接字符串中指示的用户的 SQL Server 密码。 |
4 | Close() | 它用于关闭与数据库的连接。 |
5 | CreateCommand() | 它作为多种事务在指定的事务中使用。 |
6 | GetSchema() | 它返回这个SqlConnection 数据源的模式信息。 |
7 | Open() | 它用于打开数据库连接。 |
8 | ResetStatistics() | 如果启用统计信息收集,它会重置所有值。 |
SqlConnection示例
现在,下面来创建一个与SQL Server建立连接的例子。前面的教程中,已经创建了一个名称:学生的数据库,这里将演示如何连接到这个数据库。下面参考C#代码。
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
}
代码中的using
块可以自动关闭连接。因此不需要明确调用close()
方法来关闭数据库的连接,using
代码中的块会在代码退出时隐式执行。
为了方便演示,这里创建一个名称为:SqlConnectionApp的 C# 控制台项目。如下所示 -
参考以下示例代码( TestConnection.cs ) -
using System;
using System.Data.SqlClient;
namespace SqlConnectionApp
{
class TestConnection
{
static void Main(string[] args)
{
new TestConnection().Connecting();
}
public void Connecting()
{
using (
// Creating Connection
SqlConnection con = new SqlConnection("data source=.; database=student; integrated security=SSPI")
)
{
con.Open();
Console.WriteLine("建立与SQL Server数据库的连接成功~!");
}
}
}
}
执行上面示例代码,得到以下结果 -
下面,演示如何不使用using
块。
如果不使用using
块来创建连接,必须明确地关闭连接。在下面的例子中,我们使用try
块而不是使用using
块。参考以下代码实现(TestConnection2.cs) -
using System;
using System.Data.SqlClient;
namespace SqlConnectionApp
{
class TestConnection2
{
static void Main(string[] args)
{
new TestConnection2().Connecting();
}
public void Connecting()
{
SqlConnection con = null;
try
{
// Creating Connection
con = new SqlConnection("data source=.; database=student; integrated security=SSPI");
con.Open();
Console.WriteLine("建立与SQL Server数据库的连接成功~!");
// 查询SQL Server 数据库的版本
SqlCommand cm = new SqlCommand("Select @@version as version", con);
// Executing the SQL query
SqlDataReader sdr = cm.ExecuteReader();
// Iterating Data
while (sdr.Read())
{
Console.WriteLine("SQL Server 数据库的版本是: " + sdr["version"]); // Displaying Record
}
}
catch (Exception e)
{
Console.WriteLine("程序出错了,不知道发生了什么~!\n" + e);
}
finally
{ // Closing the connection
con.Close();
}
}
}
}
执行上面示例代码,得到以下结果 -