W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
一個 data sourse 控件與數(shù)據(jù)綁定的控件相互作用,并隱藏了復雜的數(shù)據(jù)的聯(lián)編過程。這些是提供數(shù)據(jù)給 data bound 控件的工具,并且支持如插入,刪除和更新操作的執(zhí)行。
每一個 data sourse 控件包裹了一個特殊的數(shù)據(jù)提供者相關的數(shù)據(jù)庫,XML 文件,或者是自定義類,并且?guī)椭?/p>
有許多可在 ASP.NET 中獲得的 data sourse 控件,為從 SQL 服務器,ODBC 或者 OLE DB 服務器,從 XML 文件,和從業(yè)務對象中獲得數(shù)據(jù)。
基于數(shù)據(jù)類型,這些控件能被分為兩個種類:
用于分層數(shù)據(jù)的 data sourse 控件是:
用作表格數(shù)據(jù)的 data source 控件是:
Data source 控件 | 描述 |
---|---|
SqlDataSource | 它表示到返回 SQL 數(shù)據(jù)的 ADO.NET data provider 的連接,包括通過 OLEDB 和 QDBC 可獲得的 data sources。 |
ObjectDataSource | 它允許綁定一個返回數(shù)據(jù)的自定義的 .Net business 對象 |
LinqdataSource | 它允許綁定 Linq-t0-SQL 查詢的結(jié)果。(僅由 ASP.NET 3.5 支持) |
AccessDataSource | 它表示到 Microsoft Access 數(shù)據(jù)庫的連接。 |
Data source 視圖是 DataSourceView 類的對象,它代表一個自定義的為不同數(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 對象所表示的數(shù)據(jù)列表上執(zhí)行一個刪除操作。 |
ExecuteInsert | 在 DataSourceView 對象所表示的數(shù)據(jù)列表上執(zhí)行一個插入操作。 |
ExecuteSelect | 從潛在的數(shù)據(jù)存儲中獲取數(shù)據(jù)列表。 |
ExecuteUpdate | 在 DataSourceView 對象所表示的數(shù)據(jù)列表上執(zhí)行一個更新操作。 |
Delete | 在和視圖所聯(lián)系的數(shù)據(jù)上執(zhí)行一個刪除操作。 |
Insert | 在和視圖所聯(lián)系的數(shù)據(jù)上執(zhí)行一個插入操作。 |
Select | 返回被查詢的數(shù)據(jù)。 |
Update | 在和視圖所聯(lián)系的數(shù)據(jù)上執(zhí)行一個更新操作。 |
OnDataSourceViewChanged | 提出 DataSourceViewChanged 事件。 |
RaiseUnsupportedCapabilitiesError | 由 RaiseUnsupportedCapabilitiesError 方法調(diào)用來將 ExecuteSelect 操作所需要的能力和視圖所支持的能力相比較。 |
SqlDataSource 控件代表到相關數(shù)據(jù)庫比如 SQL Server 或者 Oracle數(shù)據(jù)庫,或者通過 OLEDB 或 Open Database Connectivity(ODBC) 的可存取數(shù)據(jù)的連接。數(shù)據(jù)連接通過兩個重要的屬性 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 控件的不同屬性(屬性集)。
以下的表格提供了相關的 SqlDataSource 控件的屬性集,它提供了控件的編程接口:
屬性組 | 描述 |
---|---|
DeleteCommand, DeleteParameters, DeleteCommandType | 獲取或設置 SQL 語句,參數(shù)和在潛在數(shù)據(jù)中刪除行的類型。 |
FilterExpression, FilterParameters | 獲取并設置數(shù)據(jù)過濾字符串和參數(shù)。 |
InsertCommand, InsertParameters, InsertCommandType | 獲取或設置 SQL 語句,參數(shù)和在潛在數(shù)據(jù)中插入行的類型。 |
SelectCommand, SelectParameters, SelectCommandType | 獲取或設置 SQL 語句,參數(shù)和在潛在數(shù)據(jù)中檢索行的類型。 |
SortParameterName | 獲取或設置一個輸入?yún)?shù)的名字,它將被命令存儲的過程用來給數(shù)據(jù)排序。 |
UpdateCommand, UpdateParameters, UpdateCommandType | 獲取或設置 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 控件使 user-defined 類能讓它們方法的輸出和 data bound 控件相連接。這個類的編程接口幾乎和 SqlDataSource 控件相同。
以下是綁定客戶對象的兩個重要方面:
讓我們直接到一個例子中來使用這個控件。student 類是被用來和一個 data source 對象一起使用的類。這個類有三個屬性:a student id,name,和 city。它有一個默認的構造函數(shù)和一個檢索數(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;
}
}
采取以下的步驟來將對線綁定到一個 data source 對象和檢索數(shù)據(jù):
AccessDataSource 控件代表了到 Access 數(shù)據(jù)庫的連接。它基于 SqlDataSource 控件并提供了更簡單的編程接口。以下的代碼片段提供了 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ù)集合來完成。
更新對于 ASP.NET 應用程序內(nèi)的 Access 數(shù)據(jù)庫來說是有問題的,這是因為 Access 數(shù)據(jù)庫是一個純文本并且默認的 ASP.NET 應用程序賬戶可能有寫數(shù)據(jù)庫文件的權限。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: