資料庫操作主要是執行命令和讀取資料
1.串連
要訪問資料庫,首先要與資料庫建立串連,在ADO.NET中是通過Connection對象與資料庫建立串連的
例如:建立與SQLServer伺服器上Mycharge資料庫連接的代碼:
Dim cnStr as string="Password=123456;Persist Security Info=True;User ID=sa;"&_"InitialCatalog=Mycharge;Data Source=192.168.24.60"Dim cn asSqlConnection =new SqlConnection ()cn.ConnectionString=cnStr 'ConnectionString 是Connection對象最重要的一個屬性,它用來指定與資料庫建立串連時使用的串連串cn.Open ()'開啟串連
既然代碼中提到了串連串,那我們就來說說串連串,平常大家在建立與資料庫連接時都要寫那一大串聯接串,其實書寫起來也不麻煩(前提你比較熟悉而且細心),不過錯一點也連不上啊,這時候我們可以選擇下面的這種方法來擷取串連串
1.建立一個文字檔,將其副檔名改為udl
2.雙擊你剛建好的檔案,將開啟“資料庫連接屬性”對話方塊
3.在“提供者”選項卡選擇某個提供者,這裡我們選的是SQL Server,單擊下一步按鈕
4.在“串連”選項卡中輸入資料庫名稱,使用者名稱,密碼等資訊,單擊“測試連接”按鈕查看串連是否成功
5.如果成功的話,關閉此對話方塊,使用記事本再次開啟該檔案,其中就包含你想要的資訊了
注意:由於SQLServer對象是專門針對SQLServer資料庫的,它的串連串中不允許指定Provider屬性,所以你不要激
動的把上面所有的資訊都複製下來,那樣是不對的,而要將Provider=SQLOLEDB.1去掉,只複製其後的內容就足夠啦!對於其他資料提供者的Connection對象,如OleDbConnection對象就不存在這個問題
2.命令
ADO.NET訪問資料的基本方式
- 使用資料集
- 直接對資料庫進行操作
如何使用資料集訪問?
1.填充資料集
將外部資料來源資料載入到資料集中(使用適配器)
什麼是適配器
適配器就好像是一座橋樑,用於資料來源和資料集之間減緩資料,
使用適配器可以對資料進行增,刪,改,查,分別為:
- SelectCommand:指定某命令對象以便從資料存放區區檢索行
- InsertCommand:指定某命令對象以便向資料存放區區插入行
- UpdateCommand:指定某命令對象以便修改資料存放區區中的行
- DeleteCommand:指定某命苦對象以便從資料存放區區刪除行
2.資料集更新
- 更新資料集中的資料(一般為增,刪,改)
- 將更新後的資料集同寫到資料來源中,也就是說,更新資料集的過程不會同時將更改直接寫入資料來源,因為資料來源是中斷連線的,必須通過代碼顯式執行一下。具體做法是調用資料配接器的Update方法
註:在某些情況下是不能使用資料集的。例如想要建立表之類的資料庫元素,則必須使用命令對象
如何直接對資料庫進行操作?
通過Command(命令)對象執行SQL語句或預存程序,如果執行的結果返回的是一個記錄集,則可以使用DataReader(資料讀取器)對象讀取資料。.NET針對不同的提供者建立了相應的Command對象,例如:
- OleDbCommand:用於OLE DB提供者
- SQLCommand:SQL Server7.0或更高版本
- ODBCCommand:ODBC資料來源的Command對象
使用command對象的步驟
1.構造命令對象
下面是一段構造cmd命令對象的代碼。它使用的連線物件為cn。所要執行的命令是從Information表中選擇所有的資料
Dim cnStr as string="Password=123456;Persist Security Info=True;User ID=sa;"&_"InitialCatalog=Mycharge;Data Source=192.168.24.60"Dim cn asSqlConnection =new SqlConnection ()cn.ConnectionString=cnStr 'ConnectionString 是Connection對象最重要的一個屬性,它用來指定與資料庫建立串連時使用的串連串cn.Open ()Dim sql as string="SELECT*FROM Categories"Dim cmd asSqlCommand =New SqlCommand ()cmd .Connection =cncmd.CommandText =Sql
2.執行命令
命令對象所提供的用於執行命令的方法有很多,具體使用哪個方法取決於命令的執行結果返回什麼樣的資料
- ExecuteNonQuery:執行非查詢類SQL語句並返回受影響的行數
- ExecuteReader:執行查詢,將查詢結果返回到DataReader中
- ExecuteScalar:執行查詢,並返回查詢所返回的結果集中第一行的第一列,忽略額外的列或行
- ExecuteXmlReader:執行查詢,將查詢結果返回到一個XmlReader對象中
3.讀取資料
下面代碼是從表Information中讀取資料,並將資料列ID和Name的所有資料輸出到控制台
Dim cnStr as string="Password=123456;Persist Security Info=True;User ID=sa;"&_"InitialCatalog=Mycharge;Data Source=192.168.24.60"Dim cn asSqlConnection =new SqlConnection ()cn.ConnectionString=cnStr 'ConnectionString 是Connection對象最重要的一個屬性,它用來指定與資料庫建立串連時使用的串連串cn.Open ()Dim sql as string="SELECT*FROM Categories"Dim cmd asSqlCommand =New SqlCommand (sql ,cn )Dim dr asSqlDataReader =cmd.ExecuteReader()while (dr.reader()) Dim id as string=dr("ID").ToString() Dim name as string=dr("Name").ToString() Console.WriteLine("編號:{0}姓名:{1}" ,id ,name)End whiledr.Close()cn.Close()
註:
- DateReader是一個只向前的串連游標,即只能沿一個方向遍曆記錄,在此過程中資料庫連接要一直保持開啟狀態,否則將不能通過DataReader讀取資料
- 在完成資料讀取後,需要調用Close()方法關閉DataReader對象,