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對象。
在.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時發生的意外 |
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 |
事務 |
System.Data.Odbc命名空間的核心內容是基於ODBC接口可以訪問的數據源的數據提供程序。目前主流的關係型數據庫、文本文件、Excel電子表格文件等都支持ODBC接口。命名空間的主要內容如表6-6所示。
表6-6 System.Data.Odbc命名空間的主要類
對 象 名 稱 |
對 象 功 能 |
OdbcCommand |
對數據源執行的 SQL 語句或存儲過程 |
OdbcConnection |
連接數據源 |
OdbcDataAdapter |
數據命令集和到數據源的連接,它們用於填充 DataSet 以及更新該數據源 |
OdbcDataReader |
從數據源提取只讀、向前的數據 |
OdbcError |
從數據源返回的錯誤或者警告信息 |
OdbcException |
數據源引發的異常 |
OdbcParameter |
設置OdbcCommand對象的參數 |
OdbcTransaction |
設置事務 |
System.Data.OleDb命名空間的核心內容是基於OLEDB接口可以訪問的數據源的數據提供程序。命名空間的主要內容如表6-7所示。
表6-7 System.Data.OleDb命名空間的主要類
對 象 名 稱 |
對 象 功 能 |
OleDbCommand |
對數據源執行的 SQL 語句或存儲過程 |
OleDbConnection |
連接數據源 |
OleDbDataAdapter |
數據命令集和到數據源的連接,它們用於填充 DataSet 以及更新該數據源 |
OleDbDataReader |
從數據源提取只讀、向前的數據 |
OleDbError |
從數據源返回的錯誤或者警告信息 |
OleDbException |
數據源引發的異常 |
對 象 名 稱 |
對 象 功 能 |
OleDbParameter |
設置OleDbCommand對象的參數 |
OleDbTransaction |
設置事務 |
System.Data.OracleClient命名空間的核心內容是專爲Oracle數據庫設計的數據提供程序。命名空間的主要內容如表6-8所示。
表6-8 System.Data.OracleClient命名空間的主要類
對 象 名 稱 |
對 象 功 能 |
OracleCommand |
對數據源執行的 SQL 語句或存儲過程 |
OracleConnection |
連接數據源 |
OracleDataAdapter |
數據命令集和到數據源的連接,它們用於填充 DataSet 以及更新該數據源 |
OracleDataReader |
從數據源提取只讀、向前的數據 |
OracleError |
從數據源返回的錯誤或者警告信息 |
OracleException |
數據源引發的異常 |
OracleParameter |
設置OracleCommand對象的參數 |
OracleTransaction |
設置事務 |
System.Data.SqlClient命名空間的核心內容是專爲SQL Server數據庫設計的數據提供程序。命名空間的主要內容如表6-9所示。
表6-9 System.Data.SqlClient命名空間的主要類
對 象 名 稱 |
對 象 功 能 |
SqlCommand |
對數據源執行的 SQL 語句或存儲過程 |
SqlConnection |
連接數據源 |
SqlDataAdapter |
數據命令集和到數據源的連接,它們用於填充DataSet,以及更新該數據源 |
SqlDataReader |
從數據源提取只讀、向前的數據 |
SqlError |
從數據源返回的錯誤或者警告信息 |
SqlException |
數據源引發的異常 |
SqlParameter |
設置SqlCommand對象的參數 |
SqlTransaction |
設置事務 |
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 |
設置事務 |
(擴展閱讀鏈接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數據源控件不宜使用,每次都是查詢到所有的數據之後進行挑選,效率極低。