• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • ADO.NET入門(4)

    發表于:2007-05-25來源:作者:點擊數: 標簽:代碼ADO.NET大量現有轉換
    4.轉換現有代碼 大量的ASP頁面使用ADO對象來抽取數據.讓我們一起來回顧下幾例典型的案例,對你在以后處理移植或者改寫代碼時也許會有幫助。 如果你有從單個recordset生成報表的ASP頁面,那么DataReader會是你的好幫手。 String strConn, strCmd; strConn = "D
    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 Aclearcase/" target="_blank" >ccess Violation"中所論及的麻煩.

    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>