在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C#/ ASP.NET數(shù)據(jù)源
ASP.NET調(diào)試
ASP.NET Web Services
ASP.NET緩存
ASP.NET多線程
ASP.NET面板控件
ASP.NET數(shù)據(jù)綁定
ASP.NET數(shù)據(jù)源
ASP.NET個性化
ASP.Net教程
ASP.NET Ajax控件
ASP.NET生命周期
ASP.NET HTML服務(wù)器
ASP.NET簡介
ASP.NET驗證器
ASP.NET多視圖
ASP.NET網(wǎng)站配置
ASP.NET錯誤管理
ASP.NET自定義控件
ASP.NET LINQ
ASP.NET AdRotator控件
ASP.NET客戶端
ASP.NET文件上傳
ASP.NET服務(wù)器控件
ASP.NET開發(fā)環(huán)境配置
ASP.NET管理狀態(tài)
ASP.NET服務(wù)端
ASP.NET數(shù)據(jù)庫訪問(Access)
ASP.NET基本控件
ASP.NET安全
ASP.NET指令
ASP.NET事件處理
ASP.NET第一個程序
ASP.NET日歷控件

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

數(shù)據(jù)源控件與數(shù)據(jù)綁定控件交互并隱藏復(fù)雜的數(shù)據(jù)綁定過程。這些工具為數(shù)據(jù)綁定控件提供數(shù)據(jù),并支持插入,刪除,排序和更新等操作的執(zhí)行。

每個數(shù)據(jù)源控件包裝一個特定的數(shù)據(jù)提供程序 - 關(guān)系數(shù)據(jù)庫,XML文檔或自定義類,并幫助我們:

  • 管理連接
  • 選擇數(shù)據(jù)
  • 管理分頁,緩存等表示方面
  • 操縱數(shù)據(jù)

在ASP.NET中有許多數(shù)據(jù)源控件可用于從SQL Server,ODBC或OLE DB服務(wù)器,XML文件和業(yè)務(wù)對象訪問數(shù)據(jù)。

根據(jù)數(shù)據(jù)的類型,這些控件可以分為兩大類:

  • 分層數(shù)據(jù)源控件
  • 基于表的數(shù)據(jù)源控件

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

  • XMLDataSource - 它允許綁定到具有或不具有模式信息的XML文件和字符串。
  • SiteMapDataSource - 它允許綁定到提供站點地圖信息的提供者。

用于表格數(shù)據(jù)的數(shù)據(jù)源控件是:

編號 數(shù)據(jù)源控件 描述
1 SqlDataSource 它表示與返回SQL數(shù)據(jù)的ADO.NET數(shù)據(jù)提供者的連接,包括可通過OLEDBODBC訪問的數(shù)據(jù)源。
2 ObjectDataSource 它允許綁定到返回數(shù)據(jù)的自定義.Net業(yè)務(wù)對象。
3 LinqdataSource 它允許綁定到Linq-to-SQL查詢的結(jié)果(僅由ASP.NET 3.5支持)。
4 AccessDataSource 它表示與Microsoft Access 數(shù)據(jù)庫的連接。

數(shù)據(jù)源視圖

數(shù)據(jù)源視圖是DataSourceView類的對象。它代表不同數(shù)據(jù)操作(如排序,過濾等)的數(shù)據(jù)定制視圖。

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

下表提供了DataSourceView類的屬性:

編號 屬性 描述
1 CanDelete 指示是否允許在基礎(chǔ)數(shù)據(jù)源上進行刪除。
2 CanInsert 指示是否允許在基礎(chǔ)數(shù)據(jù)源上插入。
3 CanPage 指示是否允許在基礎(chǔ)數(shù)據(jù)源上進行分頁。
4 CanRetrieveTotalRowCount 指示總行數(shù)信息是否可用。
5 CanSort 指示是否可以對數(shù)據(jù)進行排序。
6 CanUpdate 指示是否允許在基礎(chǔ)數(shù)據(jù)源上進行更新。
7 Events 獲取數(shù)據(jù)源視圖的事件處理程序委托的列表。
8 Name 視圖的名稱。

下表提供了DataSourceView類的方法:

編號 方法 描述
1 CanExecute 確定是否可以執(zhí)行指定的命令。
2 ExecuteCommand 執(zhí)行特定的命令。
3 ExecuteDelete DataSourceView對象所表示的數(shù)據(jù)列表執(zhí)行刪除操作。
4 ExecuteInsert DataSourceView對象表示的數(shù)據(jù)列表執(zhí)行插入操作。
5 ExecuteSelect 獲取底層數(shù)據(jù)存儲的數(shù)據(jù)列表。
6 ExecuteUpdate DataSourceView對象表示的數(shù)據(jù)列表執(zhí)行更新操作。
7 Delete 對與視圖關(guān)聯(lián)的數(shù)據(jù)執(zhí)行刪除操作。
8 Insert 對與視圖關(guān)聯(lián)的數(shù)據(jù)執(zhí)行插入操作。
9 Select 返回查詢的數(shù)據(jù)。
10 Update 對與視圖關(guān)聯(lián)的數(shù)據(jù)執(zhí)行更新操作。
11 OnDataSourceViewChanged 引發(fā)DataSourceViewChanged事件。
12 RaiseUnsupportedCapabilitiesError RaiseUnsupportedCapabilitiesError方法調(diào)用,以將ExecuteSelect操作請求的功能與視圖支持的功能進行比較。

SqlDataSource控件

SqlDataSource控件表示與關(guān)系數(shù)據(jù)庫(如SQL Server或Oracle數(shù)據(jù)庫)的連接,或可通過OLEDB或開放式數(shù)據(jù)庫連接(ODBC)訪問的數(shù)據(jù)。連接數(shù)據(jù)是通過兩個重要的屬性ConnectionStringProviderName來完成的。

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

<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ù)操作取決于數(shù)據(jù)源控件的各種屬性(屬性組)。

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

編號 屬性集/組
1 DeleteCommand,DeleteParameters,DeleteCommandType 獲取或設(shè)置用于刪除基礎(chǔ)數(shù)據(jù)中的行的SQL語句,參數(shù)和類型。
2 FilterExpression,FilterParameters 獲取或設(shè)置數(shù)據(jù)過濾字符串和參數(shù)。
3 InsertCommand,InsertParameters,InsertCommandType 獲取或設(shè)置用于在基礎(chǔ)數(shù)據(jù)庫中插入行的SQL語句,參數(shù)和類型。
4 SelectCommand,SelectParameters,SelectCommandType 獲取或設(shè)置從底層數(shù)據(jù)庫檢索行的SQL語句,參數(shù)和類型。
5 SortParameterName 獲取或設(shè)置命令的存儲過程將用于排序數(shù)據(jù)的輸入?yún)?shù)的名稱。
5 UpdateCommand,UpdateParameters,UpdateCommandType 獲取或設(shè)置用于更新基礎(chǔ)數(shù)據(jù)存儲中的行的SQL語句,參數(shù)和類型。

以下代碼片段顯示了為數(shù)據(jù)操作啟用的數(shù)據(jù)源控件:

<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控件允許用戶定義的類將其方法的輸出關(guān)聯(lián)到數(shù)據(jù)綁定控件。該類的編程接口與SqlDataSource控件幾乎相同。

以下是綁定業(yè)務(wù)對象的兩個重要方面:

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

讓我們直接看一個例子來處理這個控件。 Student類是與對象數(shù)據(jù)源一起使用的類。 這個類有三個屬性:學(xué)生ID,姓名和城市。 它有一個默認的構(gòu)造函數(shù)和一個GetStudents方法來檢索數(shù)據(jù)。

Student類代碼如下:

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;

/// <summary>
/// Student 的摘要說明
/// </summary>
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("學(xué)生編號", typeof(System.Int32));
        dt.Columns.Add("姓名", typeof(System.String));
        dt.Columns.Add("城市", typeof(System.String));
        dt.Rows.Add(new object[] { 1001, "何馬", "海口" });
        dt.Rows.Add(new object[] { 1002, "李小靜", "上海" });
        ds.Tables.Add(dt);

        return ds;
    }
}

執(zhí)行以下步驟將對象與對象數(shù)據(jù)源綁定并檢索數(shù)據(jù):

  • 創(chuàng)建一個新的網(wǎng)站,名稱為:DataSourceDemo。如下圖 -
  • 通過右鍵單擊解決方案資源管理器中的項目名稱,添加一個類(名稱為:Students.cs),并將上面的代碼放入其中。
  • 構(gòu)建解決方案,以便應(yīng)用程序可以使用該類的引用。
  • ObjectDataSource控件放置在Web窗體中。如下圖所示 -
  • 通過點擊上圖中的 【配置數(shù)據(jù)源…】 鏈接來選擇對象來配置數(shù)據(jù)源。參考下圖 -
  • 為數(shù)據(jù)的不同操作選擇一種數(shù)據(jù)方法。在這個例子中,只有一個方法。如下圖所示 -
  • 在窗體頁面上放置數(shù)據(jù)綁定控件(如:GridView),并選擇對象數(shù)據(jù)源作為其基礎(chǔ)數(shù)據(jù)源。
  • 經(jīng)過上面步驟后,設(shè)計視圖應(yīng)該如下所示:

文件 Default.aspx 中的代碼如下所示 -

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>數(shù)據(jù)源示例</title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetStudents" TypeName="Student"></asp:ObjectDataSource>
            <br />
            <asp:GridView ID="GridView1" runat="server" DataSourceID="ObjectDataSource1">
            </asp:GridView>
        </div>
    </form>
</body>
</html>

運行該項目,它從Student類中檢索硬編碼的元組,并顯示其中的數(shù)據(jù)如下 -

AccessDataSource控件

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

<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應(yīng)用程序中更新Access數(shù)據(jù)庫是有問題的,因為Access數(shù)據(jù)庫是普通文件,ASP.NET應(yīng)用程序的默認帳戶可能沒有寫入數(shù)據(jù)庫文件的權(quán)限。


上一篇:ASP.NET多線程下一篇:ASP.NET面板控件