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() |
如果启用统计信息收集,它会重置所有值。 |
现在,下面来创建一个与SQL Server建立连接的例子。前面一节的教程中,已经创建了一个名称:student 的数据库,这里将演示如何连接到这个数据库。参考下面的 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(); } } } }
执行上面示例代码,得到以下结果 -