ado|asp.net|筆記|ado|asp.net 筆記內容全部來自《C# Web應用程式入門經典》
1. ADO.NET的體繫結構
ADO.NET這個名字並不代表實際的內容——ADO原來是表示ActiveX Data Obejects,而是一種技術的名稱。訪問資料庫最常用的方法是:首先串連到資料庫,然後使用SQL語句。對於不同的資料庫操作有不同的Command對象方法。如,ExecuteScalar()方法返回一個包含值的對象,ExecuteReader()方法用於訪問結果集的DataReader對象,ExecuteNonQuery()返回一個整型值,表示命令所影響的行數。這裡提到了DataReader對象,這個對象是一種快速的、唯讀、只向前的從資料庫返回資料的串連指標。通過ExecuteReader()方法獲得該對象之後,調用Read()後,如果返回True就使用它的方法來訪問當前位置的資料。結果集包含多個資料行,則通常用下面的代碼來訪問每一行:
reader = command.ExecuteReader();
while(read.Read())
{
//Process current row
}
而訪問當前行中包含在各個列單元中的資料,可以使用如下DataReader下面的方法訪問:(1)GetXXX(),用於檢索所輸入的數值。諸如GetBoolean()、GetString()和GetInt32()的方法可以以參數的形式接收列的索引,並返回正確的實值型別。如Response.Write(reader.GetString(0));(其中reader為上面代碼的DataReader對象,下同)。當然有時候不知道索引,而知道名稱,這個時候可以使用DataReader對象的GetOrdinal()方法,該方法用於接收列的名稱並返回列的位置:int pos = reader.GetOrdinal(“CategoryID“);(2)預設的Item屬性,通過這個屬性可以直接存取列的值,參數則可以是整型的索引值或則String類型的列名,傳回值則是object類型的,因此需要將它顯示的轉換為所需要的資料類型:int id = (int) reader[“UserId”];或者int id = (int) reader[0];(3)GetValues()方法可以將列中的數值填充到數組中。該方法接收到一個object類型的數組,並用當前行中的資料來填充它:object[] values = new object[3]; reader.GetValues(values);在這裡可以用DataReader的FieldCount屬性來初始化這個數組。剛才的代碼錶示將當前行的前三列來填充這個數組。