ADO.Net SqlConnection類
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建立連接的例子。前面一節的教程中,已經創建了一個名稱: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();
}
}
}
}
執行上面示例代碼,得到以下結果 -