ADO.NET簡介
ADO.NET是微軟提供的一個通用的框架類庫,該類庫將跨越所有存在的Windows API函數。特別是包含一些經常使用的庫,而且用戶會發現XML和ADO對象模型被集成在一個樹狀的類的集合中。
ADO.NET是以Open Database Connectivity(ODBC)應用程序技術的使用為標志的數據庫訪問技術發展起來最新的一項技術。ADO.NET被設計成為遵循一般的更沒有面向數據庫缺陷的數據庫訪問准則,ADO.NET搜集了所有的和數據訪問有關的類,這些類由一些數據容器對象組成,它具有一般的數據處理能力。
ADO.NET和ADO不一樣,它是一個新的數據訪問程序模型,需要透徹的理解。然而,一旦用戶使用了ADO.NET ,將會發現所有的ADO技巧,對用戶在ADO.NET環境下編程是大有幫助的。
一個ADO.NET應用程序需要先建立一個連接對象,從數據源中讀取數據。它可以是SQLConnection,ADOCConnection,OracleConnection,ODBCConnection,這取決於提供者的環境。
連接數據庫:Connection對象
為了訪問數據庫,就要提供數據庫連接類,在C#中,是通過Connection類來實現的。它有四種類型的連接方式:SQLConnection,ADOCConnection,OracleConnection,ODBCConnection。由於使用的關系數據庫是SQL Server系列的,因此只是介紹SQLConnection。
連接數據庫
要連接數據庫,就要先創建連接字符,然後創建Connection對象,最後是打開數據庫。
創建連接SQL Server數據庫的字符一般有兩種,一種是以SQL身份驗證登錄,一種是以Windows身份驗證登錄,兩種連接的格式如下:
SQL驗證登錄:Server=服務器名稱;user=登錄SQL的用戶名;pwd=登錄SQL的用戶名的密碼;database=數據庫名稱;
Windows驗證登錄:Server=服務器名稱;integrated security=SSPI;Initial Catalog=數據庫名稱;
訪問本機數據庫時,可將服務器名稱改為點(.)或“local”。
創建Connection對象前要先引入該對象所在的命名空間,如訪問SQL Server數據庫就要引入System.Data.SqlClient命名空間。創建Connection對象的語法為:
SqlConnection 對象名=new SqlConnection(連接字符串);
要打開數據庫只須調用Connection對象的Open方法,語法為:
Connection對象名.Open();
用VS 2012要打開一個名為CustomerManagement數據庫的完整代碼為:
string sqlStr = "server=.;user=sa;pwd=123456;database=CustomerManagement";//連接字符串 SqlConnection conStr = new SqlConnection(sqlStr);//創建Connection對象 conStr.Open();//打開數據庫
關閉連接數據庫
為了節省系統資源,提高系統性能,最好使用完數據庫後就要關閉連接。要關閉數據庫的連接,就要調用Connection對象的Close方法。其語法為:
Connection對象名.Close();
在C#語言中,有一個垃圾回收器,它會在未來的某個時刻釋放資源,它是非決定性的,並不能確定這個過程在什麼時候發生。當忘記關閉數據庫時,可通過using子句確保對象在退出時立即被釋放,從而達到關閉數據庫的作用。uising語句不但提高了性能,而且還達到關閉數據庫的功能。還有一種通過try...catch...finally語句控制連接數據庫的關閉來搞性能,語法為:
try { string sqlStr = "server=.;user=sa;pwd=123456;database=CustomerManagement";//連接字符串 using (SqlConnection conStr = new SqlConnection(sqlStr));//創建Connection對象 conStr.Open();//打開數據庫 } catch { } finally { conStr.Close(); }
建立一個窗體,添加一個Button空間和TextBox控件,點擊按鈕在TextBox中顯示出數據庫已打開。完整的窗體代碼為:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient;//必須要引入的命名空間 using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace DB { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string sqlStr = "server=.;user=sa;pwd=123456;database=CustomerManagement";//連接字符串 SqlConnection conStr = new SqlConnection(sqlStr);//創建Connection對象 conStr.Open();//打開數據庫 if (conStr.State == ConnectionState.Open) { textBox1.Text = "數據庫已經打開!"; } } } }
運行結果為:點擊連接數據庫按鈕