返回首頁
當前位置: 主頁 > 網絡編程 > .Net實例教程 >

ASP.NET-數據源

時間:2020-01-14 16:48來源:知行網www.f1globe.com 編輯:麥田守望者

 數據源控件與數據綁定控件進行交互,并隱藏復雜的數據綁定過程。這些工具可將數據提供給數據綁定控件,并支持執行插入,刪除,排序和更新等操作。

每個數據源控件都包裝一個特定的數據提供者關系數據庫,XML文檔或自定義類,并有助于:

  • 管理連接
  • 選擇數據
  • 管理演示方面,例如分頁,緩存等。
  • 處理數據

ASP.NET中有許多數據源控件可用于從SQL Server,ODBC或OLE DB服務器,XML文件以及業務對象訪問數據。

根據數據類型,這些控件可以分為兩類:

  • 分層數據源控件
  • 基于表的數據源控件

用于分層數據的數據源控件是:

  • XMLDataSource-允許綁定帶有或不帶有模式信息的XML文件和字符串。

  • SiteMapDataSource-允許綁定到提供站點地圖信息的提供程序。

用于表格數據的數據源控件為:

數據源控件 描述
SqlDataSource 它表示與返回SQL數據的ADO.NET數據提供程序的連接,包括可通過OLEDB和ODBC訪問的數據源。
ObjectDataSource 它允許綁定到返回數據的自定義.Net業務對象。
LinqdataSource 它允許綁定到Linq-to-SQL查詢的結果(僅受ASP.NET 3.5支持)。
AccessDataSource 它表示與Microsoft Access數據庫的連接。

數據源視圖

數據源視圖是DataSourceView類的對象。代表針對不同數據操作(例如排序,過濾等)的自定義數據視圖。

DataSourceView類用作所有數據源視圖類的基類,這些類定義了數據源控件的功能。

下表提供了DataSourceView類的屬性:

性質 描述
可以刪除 指示是否允許在基礎數據源上刪除。
可以插入 指示是否允許在基礎數據源上插入。
CanPage 指示是否在基礎數據源上允許分頁。
CanRetrieveTotalRowCount 指示總行數信息是否可用。
CanSort 指示是否可以對數據進行排序。
可以更新 指示是否在基礎數據源上允許更新。
大事記 獲取數據源視圖的事件處理程序委托的列表。
名稱 視圖的名稱。

下表提供了DataSourceView類的方法:

方法 描述
可以執行 確定是否可以執行指定的命令。
ExecuteCommand 執行特定命令。
執行刪除 對DataSourceView對象表示的數據列表執行刪除操作。
執行插入 對DataSourceView對象表示的數據列表執行插入操作。
執行選擇 從基礎數據存儲中獲取數據列表。
執行更新 對DataSourceView對象表示的數據列表執行更新操作。
刪除 對與視圖關聯的數據執行刪除操作。
插入 對與視圖關聯的數據執行插入操作。
選擇 返回查詢的數據。
更新資料 對與視圖關聯的數據執行更新操作。
OnDataSourceViewChanged 引發DataSourceViewChanged事件。
RaiseUnsupportedCapabilitiesError 由RaiseUnsupportedCapabilitiesError方法調用,以將ExecuteSelect操作請求的功能與視圖支持的功能進行比較。

SqlDataSource控件

SqlDataSource控件表示與關系數據庫(例如SQL Server或Oracle數據庫)的連接,或者表示可通過OLEDB或開放式數據庫連接(ODBC)訪問的數據。通過兩個重要屬性ConnectionString和ProviderName建立與數據的連接。

以下代碼段提供了控件的基本語法:

<asp:SqlDataSource runat="server" ID="MySqlSource"    ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName  %>'    ConnectionString='<%$ ConnectionStrings:LocalNWind %>'    SelectionCommand= "SELECT * FROM EMPLOYEES" />  <asp:GridView ID="GridView1" runat="server" DataSourceID="MySqlSource" />

在基礎數據上配置各種數據操作取決于數據源控件的各種屬性(屬性組)。

下表提供了SqlDataSource控件的相關屬性集,該控件提供了控件的編程接口:

物業集團 描述

DeleteCommand,

DeleteParameters,

DeleteCommandType

獲取或設置用于刪除基礎數據中的行的SQL語句,參數和類型。

FilterExpression,

過濾參數

獲取或設置數據過濾字符串和參數。

InsertCommand,

InsertParameters,

InsertCommandType

獲取或設置用于在基礎數據庫中插入行的SQL語句,參數和類型。

SelectCommand,

選擇參數

SelectCommandType

獲取或設置用于從基礎數據庫檢索行的SQL語句,參數和類型。
SortParameterName 獲取或設置輸入參數的名稱,該命令的存儲過程將使用該輸入參數對數據進行排序。

UpdateCommand,

UpdateParameters,

UpdateCommandType

獲取或設置用于更新基礎數據存儲中的行的SQL語句,參數和類型。

以下代碼段顯示了啟用了數據操作的數據源控件:

<asp:SqlDataSource runat="server" ID= "MySqlSource"    ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName  %>'    ConnectionString=' <%$ ConnectionStrings:LocalNWind %>'    SelectCommand= "SELECT * FROM EMPLOYEES"    UpdateCommand= "UPDATE EMPLOYEES SET LASTNAME=@lame"    DeleteCommand= "DELETE FROM EMPLOYEES WHERE EMPLOYEEID=@eid"    FilterExpression= "EMPLOYEEID > 10">    .....    ..... </asp:SqlDataSource>

ObjectDataSource控件

ObjectDataSource控件使用戶定義的類能夠將其方法的輸出與數據綁定控件相關聯。此類的編程接口幾乎與SqlDataSource控件相同。

以下是綁定業務對象的兩個重要方面:

  • 可綁定類應具有默認構造函數,它應是無狀態的,并具有可以映射為選擇,更新,插入和刪除語義的方法。

  • 對象必須一次更新一項,不支持批處理操作。

讓我們直接轉到一個示例來使用此控件。學生類是與對象數據源一起使用的類。此類具有三個屬性:學生ID,姓名和城市。它具有默認構造函數和用于檢索數據的GetStudents方法。

學生班:

public class Student {    public int StudentID { get; set; }    public string Name { get; set; }    public string City { get; set; }        public Student()    { }        public DataSet GetStudents()    {       DataSet ds = new DataSet();       DataTable dt = new DataTable("Students");              dt.Columns.Add("StudentID", typeof(System.Int32));       dt.Columns.Add("StudentName", typeof(System.String));       dt.Columns.Add("StudentCity", typeof(System.String));       dt.Rows.Add(new object[] { 1, "M. H. Kabir", "Calcutta" });       dt.Rows.Add(new object[] { 2, "Ayan J. Sarkar", "Calcutta" });       ds.Tables.Add(dt);              return ds;    } }

采取以下步驟將對象與對象數據源綁定并檢索數據:

  • 創建一個新的網站。

  • 通過在解決方案資源管理器中右鍵單擊項目,添加一個類模板,然后將上面的代碼放入其中,來向其中添加一個類(Students.cs)。

  • 構建解決方案,以便應用程序可以使用對該類的引用。

  • 將對象數據源控件放在Web表單中。

  • 通過選擇對象來配置數據源。

選擇對象

  • 為數據的不同操作選擇一種數據方法。在此示例中,只有一種方法。

選擇一種數據方法

  • 在頁面上放置諸如網格視圖之類的數據綁定控件,然后選擇對象數據源作為其基礎數據源。

數據綁定控制

  • 在此階段,設計視圖應如下所示:

對象數據源

  • 運行項目,它從學生班級檢索硬編碼的元組。

對象數據結果

AccessDataSource控件

AccessDataSource控件表示與Access數據庫的連接。它基于SqlDataSource控件,并提供了更簡單的編程接口。以下代碼段提供了數據源的基本語法:

<asp:AccessDataSource ID="AccessDataSource1 runat="server"     DataFile="~/App_Data/ASPDotNetStepByStep.mdb" SelectCommand="SELECT * FROM  [DotNetReferences]"> </asp:AccessDataSource>

AccessDataSource控件以只讀模式打開數據庫。但是,它也可以用于執行插入,更新或刪除操作。這是使用ADO.NET命令和參數集合完成的。

對于ASP.NET應用程序中的Access數據庫而言,更新存在問題,因為Access數據庫是純文件,并且ASP.NET應用程序的默認帳戶可能沒有寫數據庫文件的權限。

------分隔線----------------------------
標簽(Tag):
------分隔線----------------------------
推薦內容
  • ASP.NET-數據綁定

    每個ASP.NET Web表單控件都從其父Control類繼承DataBind方法,這使它具有將數據綁定到...

  • ASP.NET-數據源

    數據源控件與數據綁定控件進行交互,并隱藏復雜的數據綁定過程。 這些工具可將數據提...

  • ASP.NET-Ajax控件

    AJAX代表異步JavaScript和XML。 這是一種跨平臺技術,可加快響應時間。 AJAX服務器控...

  • ASP.NET-面板控件

    面板控件用作頁面上其他控件的容器。 它控制其包含的控件的外觀和可見性。 它還允許以...

  • ASP.NET-多視圖

    MultiView和View控件使您可以將頁面的內容分為不同的組,一次僅顯示一個組。 每個View...

  • ASP.NET-日歷

    日歷控件是功能豐富的Web控件,它提供以下功能: 一次顯示一個月 選擇一天,一周或一...

猜你感興趣
99久久免费高清热精品