99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

ASP.NET 數(shù)據(jù)源

2022-06-27 15:43 更新

數(shù)據(jù)源

一個(gè) data sourse 控件與數(shù)據(jù)綁定的控件相互作用,并隱藏了復(fù)雜的數(shù)據(jù)的聯(lián)編過程。這些是提供數(shù)據(jù)給 data bound 控件的工具,并且支持如插入,刪除和更新操作的執(zhí)行。

每一個(gè) data sourse 控件包裹了一個(gè)特殊的數(shù)據(jù)提供者相關(guān)的數(shù)據(jù)庫,XML 文件,或者是自定義類,并且?guī)椭?/p>

  • 管理連接
  • 選擇數(shù)據(jù)
  • 管理像分頁,緩存等的展示方面
  • 操控?cái)?shù)據(jù)

有許多可在 ASP.NET 中獲得的 data sourse 控件,為從 SQL 服務(wù)器,ODBC 或者 OLE DB 服務(wù)器,從 XML 文件,和從業(yè)務(wù)對(duì)象中獲得數(shù)據(jù)。

基于數(shù)據(jù)類型,這些控件能被分為兩個(gè)種類:

  • 分層的 data sourse 控件
  • 基于表格的 data sourse 控件

用于分層數(shù)據(jù)的 data sourse 控件是:

  • XMLDataSource - 它允許用或者不用模式信息綁定 XML 文件和字符串。
  • SiteMapDataSource - 它允許綁定一個(gè)提供站點(diǎn)地圖信息的提供者。

用作表格數(shù)據(jù)的 data source 控件是:

Data source 控件描述
SqlDataSource它表示到返回 SQL 數(shù)據(jù)的 ADO.NET data provider 的連接,包括通過 OLEDB 和 QDBC 可獲得的 data sources。
ObjectDataSource它允許綁定一個(gè)返回?cái)?shù)據(jù)的自定義的 .Net business 對(duì)象
LinqdataSource它允許綁定 Linq-t0-SQL 查詢的結(jié)果。(僅由 ASP.NET 3.5 支持)
AccessDataSource它表示到 Microsoft Access 數(shù)據(jù)庫的連接。

Data Source 視圖

Data source 視圖是 DataSourceView 類的對(duì)象,它代表一個(gè)自定義的為不同數(shù)據(jù)操作如排序,過濾等而設(shè)計(jì)的數(shù)據(jù)視圖。

DataSourceView 類作為所有 data source 視圖類的基本類而使用,它定義了 data source 控件的性能。

以下表格提供了 DataSourceView 類的屬性:

屬性描述
CanDelete表示是否允許刪除潛在的 data source。
CanInsert表示是否允許插入潛在的 data source。
CanPage表示是否允許給潛在的 data source 分頁。
CanRetrieveTotalRowCount表示總的行信息能否獲得。
CanSort表示數(shù)據(jù)是否能排序。
CanUpdate表示是否允許在潛在的 data source 上更新。
Events獲得 data source 視圖代表的事件句柄的列表。
Name視圖的名字。

以下的表格提供了 DataSourceView 類的方法:

方法描述
CanExecute確定指定的命令是否能執(zhí)行。
ExecuteCommand執(zhí)行指定的命令。
ExecuteDelete在 DataSourceView 對(duì)象所表示的數(shù)據(jù)列表上執(zhí)行一個(gè)刪除操作。
ExecuteInsert在 DataSourceView 對(duì)象所表示的數(shù)據(jù)列表上執(zhí)行一個(gè)插入操作。
ExecuteSelect從潛在的數(shù)據(jù)存儲(chǔ)中獲取數(shù)據(jù)列表。
ExecuteUpdate在 DataSourceView 對(duì)象所表示的數(shù)據(jù)列表上執(zhí)行一個(gè)更新操作。
Delete在和視圖所聯(lián)系的數(shù)據(jù)上執(zhí)行一個(gè)刪除操作。
Insert在和視圖所聯(lián)系的數(shù)據(jù)上執(zhí)行一個(gè)插入操作。
Select返回被查詢的數(shù)據(jù)。
Update在和視圖所聯(lián)系的數(shù)據(jù)上執(zhí)行一個(gè)更新操作。
OnDataSourceViewChanged提出 DataSourceViewChanged 事件。
RaiseUnsupportedCapabilitiesError由 RaiseUnsupportedCapabilitiesError 方法調(diào)用來將 ExecuteSelect 操作所需要的能力和視圖所支持的能力相比較。

SqlDataSource 控件

SqlDataSource 控件代表到相關(guān)數(shù)據(jù)庫比如 SQL Server 或者 Oracle數(shù)據(jù)庫,或者通過 OLEDB 或 Open Database Connectivity(ODBC) 的可存取數(shù)據(jù)的連接。數(shù)據(jù)連接通過兩個(gè)重要的屬性 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" />

在潛在的數(shù)據(jù)上配置不同的數(shù)據(jù)操作依賴于 data source 控件的不同屬性(屬性集)。

以下的表格提供了相關(guān)的 SqlDataSource 控件的屬性集,它提供了控件的編程接口:

屬性組描述
DeleteCommand,
DeleteParameters,
DeleteCommandType
獲取或設(shè)置 SQL 語句,參數(shù)和在潛在數(shù)據(jù)中刪除行的類型。
FilterExpression,
FilterParameters
獲取并設(shè)置數(shù)據(jù)過濾字符串和參數(shù)。
InsertCommand,
InsertParameters,
InsertCommandType
獲取或設(shè)置 SQL 語句,參數(shù)和在潛在數(shù)據(jù)中插入行的類型。
SelectCommand,
SelectParameters,
SelectCommandType
獲取或設(shè)置 SQL 語句,參數(shù)和在潛在數(shù)據(jù)中檢索行的類型。
SortParameterName獲取或設(shè)置一個(gè)輸入?yún)?shù)的名字,它將被命令存儲(chǔ)的過程用來給數(shù)據(jù)排序。
UpdateCommand,
UpdateParameters,
UpdateCommandType
獲取或設(shè)置 SQL 語句,參數(shù)和在潛在數(shù)據(jù)中更新行的類型。

以下的代碼片段展示了能被用來做數(shù)據(jù)操作的 data source 控件:

<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 控件使 user-defined 類能讓它們方法的輸出和 data bound 控件相連接。這個(gè)類的編程接口幾乎和 SqlDataSource 控件相同。

以下是綁定客戶對(duì)象的兩個(gè)重要方面:

  • 可綁定的類應(yīng)該擁有一個(gè)默認(rèn)的構(gòu)造函數(shù),它應(yīng)該是無狀態(tài)的,并且擁有能夠映射到選擇,更新,插入,和刪除語意的方法。
  • 對(duì)象必須一次更新一個(gè)項(xiàng)目,批處理操作是不支持的。

讓我們直接到一個(gè)例子中來使用這個(gè)控件。student 類是被用來和一個(gè) data source 對(duì)象一起使用的類。這個(gè)類有三個(gè)屬性:a student id,name,和 city。它有一個(gè)默認(rèn)的構(gòu)造函數(shù)和一個(gè)檢索數(shù)據(jù)的 GetStudents 方法。

student 類:

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;
   }
}

采取以下的步驟來將對(duì)線綁定到一個(gè) data source 對(duì)象和檢索數(shù)據(jù):

  • 創(chuàng)建一個(gè)新的網(wǎng)頁。
  • 通過右擊 Solution Explorer 的項(xiàng)目來給它添加一個(gè)類(Student.cs),添加一個(gè)類模板,將上面的代碼放在里面。
  • 建立方法使得應(yīng)用程序可以使用類的引用。
  • 在網(wǎng)頁表單中放置一個(gè) data source 控件對(duì)象。
  • 通過選擇對(duì)象來配置 data source。

1

  • 給不同的數(shù)據(jù)操作選擇數(shù)據(jù)方法。在這個(gè)例子中,僅有一個(gè)方法。

2

  • 在頁面上放置一個(gè) data bound 控件比如 grid view 并且選擇 data source 對(duì)象作為潛在的 data source。

3

  • 在這個(gè)階段,設(shè)計(jì)視圖應(yīng)該像以下這樣:

4

  • 運(yùn)行項(xiàng)目,它檢索了 students 類中的硬編碼的元祖。

5

AccessDataSource 控件

AccessDataSource 控件代表了到 Access 數(shù)據(jù)庫的連接。它基于 SqlDataSource 控件并提供了更簡(jiǎn)單的編程接口。以下的代碼片段提供了 data source 的基本語法:

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

AccessDataSource 控件打開了只讀模式的數(shù)據(jù)庫。但是,它也能被用來執(zhí)行插入,更新或者刪除操作。這以使用 ADO.NET 命令和參數(shù)集合來完成。

更新對(duì)于 ASP.NET 應(yīng)用程序內(nèi)的 Access 數(shù)據(jù)庫來說是有問題的,這是因?yàn)?Access 數(shù)據(jù)庫是一個(gè)純文本并且默認(rèn)的 ASP.NET 應(yīng)用程序賬戶可能有寫數(shù)據(jù)庫文件的權(quán)限。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)