国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ADO.NET入門(4)

2024-07-10 13:03:33
字體:
來源:轉載
供稿:網友
4.轉換現有代碼

  大量的asp頁面使用ado對象來抽取數據.讓我們一起來回顧下幾例典型的案例,對你在以后處理移植或者改寫代碼時也許會有幫助。

  如果你有從單個recordset生成報表的asp頁面,那么datareader會是你的好幫手。

string strconn, strcmd;
strconn = "database=myagenda;server=localhost;uid=sa;pwd=;";
strcmd = "select * from names where id=" + contactid.text;
sqlconnection ocn = new sqlconnection(strconn);
sqlcommand ocmd = new sqlcommand(strcmd, ocn);
ocn.open();
sqldatareader dr;
ocmd.execute(out dr);
while (dr.read()) {
// use dr.getstring(index) or
// dr["field name"] to response.write data
}

  你可以利用hasmorerows屬性來快速檢查是否datareader為空.如果你僅僅只簡單處理一系列記錄,沒有什么比datareader.更快,更好的對象了,它同樣適用于查詢單個記錄。

  datareader.的內容是不可編輯的,但你可以將內容移動到更具管理功能的對象里,如:

   datatable或是一個或多個datarow 對象.

  當你需要處理表與記錄二者之間的復雜關系時,datareader就不是合適的工具了。數據模型鏈接越多,sql命令則會越復雜。導航模塊保有連續性,最后放入緩存的數據往往多于你所需要的,. dataset 和 datarelation objects是這種表關系模型的基礎.

  為管理parent/child 關系,ado同樣也對data-shaping engine進行封裝. 總的說來, data shaping 和 ado .net 關系是一回事.就設計方面來說,二者幾乎沒有共同點. shaped recordsetsct嵌入列表對象中包括了所有數據表信息。ado.net關系是動態鏈接,你可以在兩個數據表間隨時建立. ado依靠于shaping ole db service 提供程序,并使用專門的sql類語言特征以在執行單個ado命令的過程中生成一個分層的recordset.

  在 ado.net 中,關系中涉及的每個對象總是被看成單獨的個體。關系本身作為對象被公開,并且具有一定的行為規則。例如,datarelation 對象可以從父行到子行一層層進行更改。您可以通過將 foreignkeyconstraint 對象添加到 datatable 的 constraints 集合中來進行此操作。foreignkeyconstraint 對象表示當刪除或更新數值和行時,對通過外鍵關系相關聯的一組列的約束。如前面提到的,一旦設置好了關系,在它按程序預設終止之前,您不能進行可能破壞該關系的更改。

  正如早先提到的一樣,一旦設置了relationship,除非它是程序性的終止,你不能夠對它進行修改,那樣會使它突然中斷.

  另外, relations沒有遞延性.你可以在customers 和orders之間,orders 和 products之間設置兩個不同的關系.但是,當為了某個customer而對orders導航時,你不能夠從一個order跳到相關的products行.解決方法是,你必須另外打開orders/products 關系,鎖定你需要的order,然后獲取相關的行.

  程序員需要在asp session 對中存儲記錄嗎?通過ado .net 和 dataset 對象,你可以非常安全的進行工作,而不會引起在"storing an ado recordset in git might cause an access violation"中所論及的麻煩.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汉中市| 唐海县| 松江区| 蛟河市| 聂荣县| 宜丰县| 武鸣县| 青龙| 都匀市| 临沂市| 邛崃市| 阿城市| 大石桥市| 金沙县| 新巴尔虎右旗| 小金县| 拜城县| 漳浦县| 平和县| 河曲县| 乌兰察布市| 合川市| 林州市| 阿拉善盟| 黑山县| 新晃| 塘沽区| 潞西市| 云梦县| 城市| 福海县| 巩义市| 利津县| 阿荣旗| 上蔡县| 文登市| 河南省| 丹东市| 沧源| 茂名市| 金沙县|