ADO.NET的數據庫訪問小結
ADO.NET的數據訪問對象是以下幾個:
1、Connection對象:與數據源建立連接,連接sql server7.0 或更新版本數據庫用SqlConnection,連接OLEDB數據源使用OledbConnection.
2、Command 對象:對數據源執行SQL命令並返回結果,SQL Server7.0或更新版本用SqlCommand,OLE DB數據源使用OledbCommand.
3、DataReader對象: 讀取數據源的數據,只能將數據源的數據從頭到尾依次讀出,Sql server7.0或以上版本使用SqlDataReader,Oledb數據源使用OledbReader
4、DataAdapter對象:對數據源執行操作並返回結果,在DataSet與數據源之間建立通信,將數據源中的數據寫入DataSet ,或根據DataSet中的數據必定數據源。Sql server7.0或以上版本使用SqlDataAdapter,Oledb 數據源使用OledbAdpater.
5、DataSet對象:服務器內存中的數據庫
6、DataView對象:用於顯示DataSet中的數據
從數據庫中讀取紀錄的另一種方法是使用Dataset對象和Dataadapter對象.Dataset是ADO.NET的主要組件之一,它用於緩存從數據源檢索到的數據信息。Dataadapter作爲Dataset和數據源之間的橋接器,用於檢索和保存數據。Dataadapter從數據庫中獲取數據後使用Fill方法把數據填充到Dataset中。下面以Sqldataadapter爲例說明如何使用Dataset對象和Dataadapter對象從數據庫中讀取記錄。執行查詢的關鍵步驟如下:
1、創建與數據庫建立連接的Sqlconnection,傳遞連接字符串。
2、構造包含查詢語句的Sqldataadapter對象;
3、若要使用查詢結果填充Dataset對象,則調用命令Fill方法。
c#利用ado.net進行數據庫開發的基本步驟:
1、創建和數據庫連接的connection 對象。
2、配置DataAdapter對象並創建和操作數據集DataSet。
3、將數據庫中的表添加到DataSet中。
4、把數據集DataSet綁定到DataGrid上。利用DataAdapter 的Fill方法把數據填充到DataSet,最終的數據庫中的數據顯示在用戶界面的DataGrid中。
c#中從數據庫查詢記錄的方法分類:
一般使用兩種方法:
一種是通過DataReader對象直接訪問;另一種則是通過數據集Dataset和Dataadapter對象訪問.
使用ADO.NET的Datareader對象能從數據庫中檢索數據。檢索出來的數據形成一個只讀只進的數據流,存儲在客戶端的網絡緩衝區內。Datareader對象的read方法可以前進到一下條記錄。在默認情況下,每執行一次read方法只會在內存中存儲一條記錄系統的開銷非常少。
創建datareader之前必須先創建sqlcommand對象,然後調用該對象的executereader方法來構造sqldatareader對象,而不是直接使用構造函數。
下面的示例程序完成的功能是訪問sqlserver數據庫,並使用datareader從northwind數據中讀取記錄,並將查詢結果通過控制檯輸出。
using System;
using System.Data;
using System.Data.SqlClient;
namespace ReadDataFromDB{
class Class1{
static void Main(string[] args){
string myconn="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind";
//需要執行的SQL語句
string mysql="select OrderID,CustomerID from Orders where CustomerID='CHOPS'";
//打開數據庫連接。
SqlConnection myconnection=new SqlConnection(myconn);
myconnection.Open();
//創建SqlCommand 對象
SqlCommand mycommand=new(mysql,myconnection);
//通過SqlCommand的ExecuteReader()方法構造DataReader 對象。
SqlDataReader myreader=mycommand.ExecuteReader();
while(myreader.read()){
Console.WriteLine(myreader.GetInt32(0)+","+myreader.GetString(1));
}
myreader.Close();
myconnection.Close();
}
}
}