介紹與連線

介紹

ADO.NET 是 .NET 平台下用來操作資料庫相關模組的統稱。
透過它我們可以操作資料庫,完成新增、刪除、修改、查詢等基礎作業;也能夠執行 SQL 陳述式、呼叫 SQL 函數、執行預存程序等等。

多數大型商業系統都離不開資料庫。如果需要把資料持久儲存,同時還要具備高效查詢能力,就必須使用資料庫。

ADO.NET 的核心提供一組物件,這些物件已經封裝好各種資料庫操作的相關方法:

  • Connection:建立與資料庫之間的連線
  • Command:執行 SQL 相關指令
  • DataSet:記憶體內的資料集合,屬於資料庫的抽象表示。操作 DataSet 就如同操作離線資料庫,內部包含 DataTable(資料表)、DataRow(資料表內的單筆記錄)
  • DataReader:唯讀向前的資料讀取器
  • DataAdapter:資料配接器

熟悉 ADO.NET 才能開發功能完整的商業系統,網站這類應用也大多依賴資料庫,建議務必好好研讀。

EF、iBatis、NHibernate、Linq to Entities 這類 ORM 框架,底層全部都是建構在 ADO.NET 之上。你也可以直接以 ADO.NET 為基礎自行開發 ORM 框架。

資料庫連線

Connection 負責建立程式與資料庫的連線,是所有資料庫操作必經的橋樑。

.NET 提供 SqlConnection 類別實作資料庫連線,所屬命名空間:System.Data.SqlClient,組件:System.Data.dll
大多數和資料庫互動的型別,都封裝在這個 dll 檔案當中。

建立連線之前,要先準備好資料庫連線字串,實例化 SqlConnection 物件的時候就要帶入這個字串。

SqlConnection conn = new SqlConnection(connectionString);Code language: JavaScript (javascript)

連線字串本質就是一般字串,使用 string 型別存放。

兩種登入模式的連線字串範例
  1. SA帳號密碼登入(SQL Server 身分驗證)
"Data Source=.;Initial Catalog=資料庫名稱;User ID=sa;pwd=密碼;"Code language: JSON / JSON with Comments (json)
  1. Windows 身分驗證登入
Data Source=.;Initial Catalog=資料庫名稱;Integrated Security=TrueCode language: PHP (php)

連線字串由多個設定項目組成,使用英文分號做分隔,格式為 鍵=值
參數說明:

  • Data Source:資料庫伺服器位址。本機資料庫可填寫 .localhost127.0.0.1;遠端伺服器則輸入 IP 或是網域名稱。
  • Initial Catalog:目標資料庫名稱
  • User ID:資料庫登入帳號
  • pwd:資料庫登入密碼

補充:User IDpwd 並非必填。使用 Windows 登入模式時,設定 Integrated Security=True 開啟整合安全性驗證,就不用填寫帳號密碼。

在 C# 當中如何連接資料庫

private void button1_Click(object sender, EventArgs e)
{
    string connectionString = "Data Source=.;Initial Catalog=db;User ID=sa;pwd=123321;";
    // 在 using 陳述式內實例化連線物件,程式區塊結束會自動釋放資源,不需要手動呼叫 Close()
    using (SqlConnection conn = new SqlConnection(connectionString))
    {
        // 開啟資料庫連線
        conn.Open();
        // 在這裡撰寫資料庫操作程式碼
    }
}Code language: JavaScript (javascript)

補充說明

  1. conn.Open()開啟資料庫連線,一定要呼叫這個方法才會真正建立網路連線。
  2. using 語法優點:離開 using 程式區塊範圍之後,會自動釋放資源並關閉資料庫連線,避免發生連線洩漏。
  3. 沒有使用 using 的情況下,作業完成後必須手動呼叫 conn.Close() 關閉連線。

其他常用寫法

//conn.Open();                // 開啟連線
//conn.Close();               // 手動關閉連線
//conn.ConnectionString = connectionString; // 動態指定連線字串
//conn.ConnectionString = "";              // 清空連線字串Code language: JSON / JSON with Comments (json)

介紹與連線

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *