dotnet夜話 第六、七集筆記

 1、服務器控件。控件的一些基本屬性,服務器控件都直接或間接派生自system.web.ui.control類(定義由所有 ASP.NET 服務器控件共享的屬性、方法和事件。),control類有以下常見屬性clientid,id,skinid,uniqueid,visible等
2、BUTTON事件:click 和command(需要傳參數時用到,不同之處在於使用的委託不同)。一些屬性:causesvalidation,commandargument,cssclass,enabled,onclientclick(客戶端點擊事件),text,validationgtoup。
3、textbox控件:textmode屬性控制輸入框形式。singleline 單行,password 密碼 multiline 多行 。autopostback屬性。可以在textbox中添加onblur、onpress等客戶端事件,雖然vs不認但 一樣可以解釋出來。下面列舉textbox只能輸入文字或數字的方法

<textarea cols="50" rows="15" name="code" class="c-sharp">//此例是去掉中文,將文本框中的中文替換爲"" protected void Page_Load(object sender, EventArgs e) { Session.Clear(); this.TextBox1.Focus(); if (IsPostBack == false) { TextBox1.Attributes.Add("OnFocus", "this.select();"); TextBox1.Attributes.Add("OnKeyUp", "this.value=this.value.replace(/[/u4e00-/u9fa5]/g,'');"); } } </textarea>

 

4、fileupload控件:屬性:filebytes,  。。。使用server.mappath()函數把虛擬目錄轉變成物理路徑
5、literal(和lable只有一個區別,就是在轉換成客戶端Html代碼後,Label就成了<span></span>,而Literal則是什麼標記都不帶。
Literal 不允許您向其內容應用樣式。)控件。response.whrite()顯示的文本可能在<html></html>之外
6、panel控件。產生一個div標記
7、placeholder控件。(不產生任何html標記)
8、服務器控件方便 但比html控件的效率要低,有空學習以下html控件。

第七集(很重要的一集)
1、ado.net簡介:提供了平臺互用性和可伸縮的數據訪問。

ADO.NET active data object 動態數據對象 他是負責提取從數據庫中獲得你想要數據的一組命名空間和類的統稱
在ADO,NET裏定義了很多的命名空間 比如.sqlclint oledb...等等 負責從不同類型的數據庫裏提取數據
而在這些命名空間中又定義了很多不同的類負責不同的功能 比如sqlconnection是針對sql數據庫負責和數據庫取得連接的
而sqldatareader是獲得1Reader對象的...

說白了就是一個數據驅動程序。
是.net和sql進行互動的中間件...
一般你只要瞭解ado.net的四大核心組件:
command
connection
dataAdapter
dataReader
DataSet
那麼ado.net也就瞭解的差不多了....

ADO.NET就是.NET Framework的類庫中一些特定的能夠對數據庫中的數據進行操作的類的集合,如圖6-4所示。


 

圖6-4  ADO.NET的體系結構

ADO.NET實際包括兩個組成部分。
1.數據提供者
也稱爲.NET Framework 數據提供程序,實際上就是建立和數據庫的連接、提取數據、操作數據、執行數據命令等一系列類。
2.DataSet(數據集)
表示數據在客戶機內存中的緩存。

NET框架是ADO.NET的運行支撐環境,其內部的類集合中包括了ADO.NET的所有類集合。
ADO.NET是有關數據庫訪問和操作的主要類集合,是.NET框架中非常重要的組成部分。利用ADO.NET技術編制的數據庫程序必須在.NET框架支持下才能運行。

數據提供程序
1.核心對象
ADO.NET中的數據提供程序主要包括如表6-2所示的4個核心對象。
2.非核心對象
除了表6-2所示的核心對象之外,還包括表6-3所示的其他對象。
表6-2  ADO.NET的數據提供程序的核心對象

Connection對象

數據庫連接對象,建立和數據庫的連接

Command對象

命令對象,更加靈活執行命令的對象

DataReader對象

數據閱讀器對象,讀取數據源中只讀、向前的數據

DataAdapter對象

數據適配器對象,讀取數據源數據填充數據集對象DataSet

表6-3  ADO.NET的數據提供程序的非核心對象

Transact對象

事務對象,在AOD.NET中使用事務

CommandBuilder對象

幫助器對象,將自動生成 DataAdapter 的命令屬性或將從存儲過程派生參數信息並填充 Command 對象的 Parameters 集合

ConnectionStringBuilder對象

幫助器對象,爲創建和管理 Connection 對象所使用的連接字符串的內容提供了一種簡單的方法

Parameter對象

參數對象,定義命令和存儲過程的輸入、輸出和返回值參數

Exception對象

例外對象,在ADO.NET遇到錯誤時返回

Error

錯誤對象,獲取錯誤或者警告信息

ClientPermission

設置代碼訪問的安全屬性


ADO.NET訪問數據庫的兩種機制
前面我們已經知道ADO連接數據庫的方法。如果是很大的網絡系統,同時連接到數據庫服務器的客戶機數量會很多。這樣在數據庫服務器上會頻繁進行“建立連接”、“釋放資源”、“關閉連接”的操作。這樣會使服務器的性能經受嚴峻的考驗。那麼,怎樣才能改進數據庫連接的性能呢?這要從ADO.NET訪問數據庫的兩種機制談起。
1.連接模式
連接模式下,客戶機一直保持和數據庫服務器的連接,這和ADO技術是一致的。這種模式適合數據傳輸量少、系統規模不大、客戶機和服務器在同一網絡內的環境。一個典型的ADO.NET連接模式如圖6-5所示。
連接模式下數據訪問的步驟如下。
(1)使用Connection對象連接數據庫。
(2)使用Command(命令)對象向數據庫索取數據。
(3)把取回來的數據放在DataReader(數據閱讀器)對象中進行讀取。
(4)完成讀取操作後,關閉DataReader對象.
(5)關閉Connection對象。
提示:ADO.NET的連接模式只能返回向前的、只讀的數據,這是因爲DataReader對象的特性決定的。
2.斷開連接模式
斷開連接模式適合網絡數據量大、系統節點多、網絡結構複雜,尤其是通過Internet/Intranet進行連接的網絡。典型的ADO.NET斷開連接模式應用如圖6-6所示。
斷開連接模式下數據訪問的步驟如下。
(1)使用Connection對象連接數據庫。
(2)使用Command對象獲取數據庫的數據。
(3)把Command對象的運行結果存儲在DataAdapter(數據適配器)對象中。
(4)把DataAdapter對象中的數據填充到DataSet(數據集)對象中。
(5)關閉Connection對象。
(6)在客戶機本地內存保存的DataSet(數據集)對象中執行數據的各種操作。
(7)操作完畢後,啓動Connection對象連接數據庫。
(8)利用DataAdapter對象更新數據庫。
(9)關閉Connection對象。
由於使用了斷開連接模式,服務器不需要維護和客戶機之間的連接,只有當客戶機需要將更新的數據傳回到服務器時再重新連接,這樣服務器ADO.NET的具體實現
在.NET Framework中,ADO.NET被具體實現爲一個一個的類。這些類又集中在System.Data的命名空間中。下面簡要介紹System.Data命名空間的主要內容,這也是ADO.NET將要涉及的主要的類。
6.3.1  System.Data命名空間
System.Data命名空間的核心內容是DataSet對象及相關的類,如表6-4所示。
表6-4  System.Data命名空間的主要類

   

   

DataSet

數據在內存中的緩存

DataTable

內存中的數據表

DataTableCollection

內存中的DataTable集合

DataView

內存中某個DataTable的視圖

DataRow

DataTable中的某行數據

DataRowCollection

DataTable中行的集合

DataRowView

DataRow的視圖

DataColumn

DataTable的列結構

DataColumnCollection

某個DataTable對象的DataColumn集合

DataRelation

兩個DataTable之間的關係

DataRelationCollection

DataSet中所有的DataRelation對象的集合

Constraint

DataColumn對象上的約束

ConstraintCollection

某個DataTable上所有的Constraint對象的集合

DataTableReader

以一個或多個只讀、只進結果集的形式獲取N DataTable 對象的內容

DataException

使用ADO.NET時發生的意外

6.3.2  System.Data.Common命名空間
System.Data.Common命名空間的核心內容是各種 .NET Framework 數據提供程序共享的類,如表6-5所示。
表6-5  System.Data.Common命名空間的主要類

DataAdapter

一組SQL 命令和一個數據庫連接,用於填充 DataSet 和更新數據源

DbCommand

表示要對數據源執行的 SQL 語句或存儲過程

DbConnection

表示到數據庫的連接

DbDataAdapter

繼承DataAdapter的大部分功能

DbDataReader

從數據源返回只讀的、向前的數據

DbException

數據源引發的異常

DbParameter

DbCommand對象設置參數

DbTransaction

事務

6.3.3  System.Data.Odbc命名空間
System.Data.Odbc命名空間的核心內容是基於ODBC接口可以訪問的數據源的數據提供程序。目前主流的關係型數據庫、文本文件、Excel電子表格文件等都支持ODBC接口。命名空間的主要內容如表6-6所示。
表6-6  System.Data.Odbc命名空間的主要類

OdbcCommand

對數據源執行的 SQL 語句或存儲過程

OdbcConnection

連接數據源

OdbcDataAdapter

數據命令集和到數據源的連接,它們用於填充 DataSet 以及更新該數據源

OdbcDataReader

從數據源提取只讀、向前的數據

OdbcError

從數據源返回的錯誤或者警告信息

OdbcException

數據源引發的異常

OdbcParameter

設置OdbcCommand對象的參數

OdbcTransaction

設置事務

6.3.4  System.Data.OleDb命名空間
System.Data.OleDb命名空間的核心內容是基於OLEDB接口可以訪問的數據源的數據提供程序。命名空間的主要內容如表6-7所示。
表6-7  System.Data.OleDb命名空間的主要類

OleDbCommand

對數據源執行的 SQL 語句或存儲過程

OleDbConnection

連接數據源

OleDbDataAdapter

數據命令集和到數據源的連接,它們用於填充 DataSet 以及更新該數據源

OleDbDataReader

從數據源提取只讀、向前的數據

OleDbError

從數據源返回的錯誤或者警告信息

OleDbException

數據源引發的異常

OleDbParameter

設置OleDbCommand對象的參數

OleDbTransaction

設置事務

6.3.5  System.Data.OracleClient命名空間
System.Data.OracleClient命名空間的核心內容是專爲Oracle數據庫設計的數據提供程序。命名空間的主要內容如表6-8所示。
表6-8  System.Data.OracleClient命名空間的主要類

OracleCommand

對數據源執行的 SQL 語句或存儲過程

OracleConnection

連接數據源

OracleDataAdapter

數據命令集和到數據源的連接,它們用於填充 DataSet 以及更新該數據源

OracleDataReader

從數據源提取只讀、向前的數據

OracleError

從數據源返回的錯誤或者警告信息

OracleException

數據源引發的異常

OracleParameter

設置OracleCommand對象的參數

OracleTransaction

設置事務

6.3.6  System.Data.SqlClient命名空間
System.Data.SqlClient命名空間的核心內容是專爲SQL Server數據庫設計的數據提供程序。命名空間的主要內容如表6-9所示。
表6-9  System.Data.SqlClient命名空間的主要類

SqlCommand

對數據源執行的 SQL 語句或存儲過程

SqlConnection

連接數據源

SqlDataAdapter

數據命令集和到數據源的連接,它們用於填充DataSet,以及更新該數據源

SqlDataReader

從數據源提取只讀、向前的數據

SqlError

從數據源返回的錯誤或者警告信息

SqlException

數據源引發的異常

SqlParameter

設置SqlCommand對象的參數

SqlTransaction

設置事務

6.3.7  System.Data.SqlServerCe命名空間
System.Data.SqlServerCe命名空間的核心內容是ADO.NET 2.0中專爲SQL Server Mobile數據庫設計的數據提供程序。命名空間的主要內容如表6-10所示。
表6-10  System.Data.SqlServerCe命名空間的主要類

SqlCeCommand

對數據源執行的 SQLCE 語句或存儲過程

SqlCeConnection

連接數據源

SqlCeDataAdapter

數據命令集和到數據源的連接,它們用於填充DataSet,以及更新該數據源

SqlCeDataReader

從數據源提取只讀、向前的數據

SqlCeError

從數據源返回的錯誤或者警告信息

SqlCeException

數據源引發的異常

SqlCeParameter

設置SqlCeCommand對象的參數

SqlCeTransaction

設置事務

的資源消耗就少,可以同時支持更多併發的客戶機。當然,這需要DataSet對象的支持和配合才能完成,這是ADO.NET的卓越之處。

 

(擴展閱讀鏈接http://book.51cto.com/art/200708/54525.htm

 

 

此圖顯示了ado.net的統一性物理數據庫(database)和內存數據庫(dataset)的對比
2、connection對象,數據庫連接對象,兩個屬性connectionstring 用於打開數據庫的字符串。state 狀態(closed和open)。兩個方法 open() close()打開和關閉數據庫。
3、command對象L三個方法 executenonquery()(返回受影響的行數,主要對數據庫之星增 刪 改操作。) executereader()返回一datareader對象 executescalar()返回查詢結果的第一行第一列的值
4、datareader對象:只讀的。讀取數據的方式第一是按照索引的方式(如 sqldatareader reader=“”; reader.getint(0)或reader[0]或reader["字段名"] 都能獲取第一列)第二是
5、dataadapter對象
6、dataset對象:數據集對象。用於表示那些存儲在內存中的數據。
7、datatable對象:是ado.net庫中的核心對象,就像普通數據庫一樣 也有行和列(datarow和datacolumn(列又稱字段))
8、參數化sql語句:避免sql注入的兩種方式第一是用存儲過程寫語句效率高防注入,第二就是參數化sql語句。
9、分頁查詢語句:top  not in  要比在網頁中分頁更效率
10、sqldatasorse、accessdatasource、objecdatasourse數據源控件不宜使用,每次都是查詢到所有的數據之後進行挑選,效率極低。

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章