ADO.NET數(shù)據(jù)庫命令及其使用方法
下面的文章介紹了ADO.NET數(shù)據(jù)庫的相關(guān)創(chuàng)建維護(hù)工作:建立一個(gè)到ADO.NET數(shù)據(jù)庫的連接,對(duì)于連接的發(fā)送select命令,用DataReader對(duì)象來保存返回的結(jié)果,然后通過循環(huán)DataReader取得數(shù)據(jù)。
一個(gè)命令(Command)可以用典型的SQL語句來表達(dá),包括執(zhí)行選擇查詢(select query)來返回記錄集,執(zhí)行行動(dòng)查詢(action query)來 更新(增加、編輯或刪除)數(shù)據(jù)庫的記錄,或者創(chuàng)建并修改數(shù)據(jù)庫的表結(jié)構(gòu)。當(dāng)然命令(Command)也可以傳遞參數(shù)并返回值。#t#
Commands可以被明確的界定,或者調(diào)用ADO.NET數(shù)據(jù)庫中的存儲(chǔ)過程。接下來的小段代碼證明了在建立連接之后如何去發(fā)出一個(gè)Select命令。
- [C#]
- String SQLStmt = " SELECT * FROM Customers";
- ADOCommand myCommand = new ADOCommand(SQLStmt, myConn);
- [VB]
- Dim SQlStmt As String = "SELECT * FROM Customers"
- Dim myCommand As ADOCommand = New ADOCommand(SQLStmt, myConn)
當(dāng)你處理大量ADO.NET數(shù)據(jù)的時(shí)候,大量?jī)?nèi)存的占用會(huì)導(dǎo)致性能上的問題。例如,一個(gè)連接(connection)用傳統(tǒng)的ADO Recordset對(duì)象去讀1000行ADO.NET數(shù)據(jù)庫的記錄,就必須為這1000行記錄將內(nèi)存分配給這個(gè)連接直至這個(gè)連接的生命周期結(jié)束。如果有1000用戶在同一時(shí)間對(duì)同一計(jì)算機(jī)進(jìn)行同樣的操作,內(nèi)存被過度的使用就會(huì)成為關(guān)鍵性的問題。
為了解決這些問題,.NET框架包括了DataReaders對(duì)象,而這個(gè)對(duì)象僅僅從數(shù)據(jù)庫返回一個(gè)只讀的,僅向前數(shù)據(jù)流。而且當(dāng)前內(nèi)存中每次僅存在一條記錄。DataReader接口支持各種數(shù)據(jù)源,比如關(guān)系數(shù)據(jù)和分級(jí)數(shù)據(jù)。DataReader可以適用于在運(yùn)行完一條命令僅需要返回一個(gè)簡(jiǎn)單的只讀記錄集。