ADO.Net 有兩種訪問數據庫源的方式,分別為Dagareader對象及DataSet 對象,就里說一下DataReader
DataReader對象是用來讀取數據庫的最簡單方式,它只能讀取,不能寫入,並且是從頭至尾往下讀的,無法只讀某條數據,但它佔用內存小,速度快,有時需要用.
DataReader的創建
首行當然是打開數據庫,然後建立Command對象,確認執行的SQL語句,最後用Commandname.ExecuteReader()方式返回一個DataReader對象,有二種方式
ACCESS數據庫︰
Dim ObjReader As OleDataReader = objCmd.ExecuteReader()
MSSQL數據庫
Dim ObjReader As SqlDataReader = objCmd.ExecuteReader()
objReader 是建立後的Datareader的實例
DataReader 常用屬性
| FieldCount | 獲取字段數目 |
| IsClosed | 取得狀態True or Fals |
| Item({name,ordinal}) | 獲取或設置字段內容,name為字段名,ordinal為字段序號,可選用 |
| RecordsAffected | 獲取執行insert delete 或update後有多少行受到影響 |
DataReader 常用方法
CLose() 關閉
GetBoolean(ordinal) 取得第 ordinal+1列的內容,返回值為boolean類型,還有GetByte(ordinal),GetDecimal(ordinal).....
GetDataTypeName(ordinal) 取得第ordinal+1列的源數據類型名稱
GetFileType(ordinal) 取得第ordinal+1列的數據類型
GetName(ordinal) 取得ordinal+1列的字段名稱
GetOrdinal(name) 取得字段名稱為name的字段列號
GetValue(ordinal) 取得ordinal+1列的內容
GetValues(values) 取得所有字段內容,並將內容放在values數組中,數組大小與字段數目相等,些方式比GetValue()更有效率
IsDBNull(orderinal) 判斷第ordinal+1列是否為Null ,返回Boolean
Read() 讀取下一條數據,如果沒有了,將返回False
做個例子(SQL數據庫):
'創建數據庫
Dim objConn As New SqlConnection
objConn.ConnectionString = "server=localhost;database=xxxx;uid=sa;pwd=xxxxx"
objConn.open()
'Label1.Text = "數據庫已打開"
'創建DataReader對象
Dim objCmd As New SqlCommand
objCmd.Connection = objConn
objCmd.CommandText = "select * from adminlog_cc"
Dim objReader As SqlDataReader = objCmd.ExecuteReader()
'讀取並顯示數據
Dim I As Integer
Response.Write("<table border='1'><tr align='center'>")
For I = 0 To objReader.FieldCount - 1
Response.Write("<td>" & objReader.GetName(I) & "</td>")
Next
Response.Write("</tr>")
While objReader.Read
Response.Write("<tr>")
For I = 0 To objReader.FieldCount - 1
Response.Write("<td>" & objReader.GetValue(I) & "</td>")
Next
Response.Write("</tr>")
End While
Response.Write("</table>")
'關閉
objReader.Close()
objConn.Close()

