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();
}
}
}
}
執行上面範例程式碼,得到以下結果 -