在线观看不卡亚洲电影_亚洲妓女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個(gè)性化
ASP.Net教程
ASP.NET Ajax控件
ASP.NET生命周期
ASP.NET HTML服務(wù)器
ASP.NET簡(jiǎn)介
ASP.NET驗(yàn)證器
ASP.NET多視圖
ASP.NET網(wǎng)站配置
ASP.NET錯(cuò)誤管理
ASP.NET自定義控件
ASP.NET LINQ
ASP.NET AdRotator控件
ASP.NET客戶端
ASP.NET文件上傳
ASP.NET服務(wù)器控件
ASP.NET開(kāi)發(fā)環(huán)境配置
ASP.NET管理狀態(tài)
ASP.NET服務(wù)端
ASP.NET數(shù)據(jù)庫(kù)訪問(wèn)(Access)
ASP.NET基本控件
ASP.NET安全
ASP.NET指令
ASP.NET事件處理
ASP.NET第一個(gè)程序
ASP.NET日歷控件

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

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

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

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

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

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

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

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

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

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

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

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

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

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

下表提供了DataSourceView類(lèi)的屬性:

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

下表提供了DataSourceView類(lèi)的方法:

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

SqlDataSource控件

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

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

<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)屬性集,它提供了控件的編程接口:

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

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

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

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

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

Student類(lèi)代碼如下:

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

/// <summary>
/// Student 的摘要說(shuō)明
/// </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é)生編號(hào)", 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í)行以下步驟將對(duì)象與對(duì)象數(shù)據(jù)源綁定并檢索數(shù)據(jù):

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

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

AccessDataSource控件

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

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

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

從ASP.NET應(yīng)用程序中更新Access數(shù)據(jù)庫(kù)是有問(wèn)題的,因?yàn)?code>Access數(shù)據(jù)庫(kù)是普通文件,ASP.NET應(yīng)用程序的默認(rèn)帳戶可能沒(méi)有寫(xiě)入數(shù)據(jù)庫(kù)文件的權(quán)限。


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