匯出 (0) 列印
全部展開

逐步解說:在 Web Form 網頁中顯示資料

Visual Studio .NET 2003

Web Form 網頁提供各種方式來讓您使用資料。這個逐步解說示範最簡單的方式。

在逐步解說中,您將在網頁上的資料格中顯示 Northwind Categories 資料表的資訊。您將會建立資料集 (記憶體中的資料快取),將資料庫的資料讀入其中,接著您會將 DataGrid Web 伺服器控制項繫結至資料集以顯示資料。

注意   使用資料集是在 Web Form 中存取資料的唯一選項,而且在某些案例中並不是最佳的選擇。為方便說明,您在這個逐步解說中會使用資料集。如需詳細資訊,請參閱 Web 資料存取策略的建議

若要完成這個逐步解說,您必須:

  • 使用 Northwind SQL Server 範例資料庫來存取伺服器。SQL Server 可能位於與 Web 伺服器相同的電腦上,或位於另一台伺服器上。在任一情況下,您都必須設定存取使用權限。如需詳細資訊,請參閱從 Web 應用程式存取 SQL Server
  • 您必須擁有足夠的權限,才能在 Web 伺服器所在的電腦上建立 ASP.NET Web 應用程式專案。如需詳細資訊,請參閱在 Visual Studio 設計階段的 Web 應用程式安全性

逐步解說區分為幾個小單元:

  • 建立 Web 應用程式專案和 Web Form 網頁。
  • 建立並設定與資料格繫結的資料集。其中包括建立從資料庫填入資料集的查詢。
  • 在表單中加入 DataGrid 控制項,並將其繫結至資料。
  • 加入程式碼以填入資料集。

建立專案和表單

第一個步驟是建立 Web 應用程式和 Web Form 網頁。

若要建立專案和表單

  1. 在 [檔案] 功能表上,指向 [新增],然後按一下 [專案]。
  2. 在 [新增專案] 對話方塊中,執行下列動作:
    1. 在 [專案類型] 窗格中,選擇 [Visual Basic 專案] 或 [Visual C# 專案]。
    2. 在 [範本] 窗格中,選擇 [ASP.NET Web 應用程式]。
    3. 在 [位置] 方塊中,輸入應用程式的完整 URL 位址,包括 http://、伺服器的名稱以及專案的名稱。Web 伺服器必須有 IIS 版本 5 或更新版本,且安裝有 .NET Framework。如果您的電腦上有安裝 IIS,可以將伺服器指定為 http://localhost (如果您通常使用 Proxy 伺服器存取 Internet,您需要設定 Internet Explorer 以略過 Proxy 伺服器,才能使用本機)。

      當您按一下 [確定] 時,在您所指定的 Web 伺服器根目錄上會建立一個新的 Web Form 專案。此外,在 Web Form 設計工具的 [設計] 檢視中,也會顯示一個名為 WebForm1.aspx 的新 Web Form 網頁。

      秘訣   如果您在建立 Web 應用程式專案時遭遇困難,請參閱 Web 存取失敗對話方塊

建立和組態資料集

在這個逐步解說中,您會在網頁中加入資料集。資料集會包含單一資料表,也就是 Categories 資料表 (資料集可包含多個資料表,但在這個逐步解說中,它只會包含一個資料表)。

資料集還不存在。您將執行下列幾個步驟,取代手動將資料集加入至表單的方式:

  • 使用精靈來建立資料配接器。配接器包含可用於讀寫資料庫資訊的 SQL 陳述式。精靈可協助您定義所需的 SQL 陳述式。如有必要,精靈會建立一個指向資料庫的連接。
  • 產生資料集結構描述。在這個程序中,您會根據所存取的資料表和資料行,透過 Visual Studio 來建立新的資料集類別。產生資料集類別後,也要在表單中加入該類別的執行個體 (Instance)。

請務必遵守本節的所有程序,否則網頁中將欠缺下一個逐步解說部份所需的資料集。

如需資料配接器的詳細資訊,請參閱資料配接器簡介。如需資料集的詳細資訊,請參閱資料集簡介

設定資料連接和資料配接器

開始先建立一個資料配接器,其中包含可在稍後填入資料集的 SQL 陳述式。在這項程序中,您需要定義一條可存取資料庫的連接。請使用精靈來設定資料配接器,這樣將可以輕鬆地建立資料存取所需的 SQL 陳述式。

注意   當精靈結束時,您必須繼續進行下一章節以產生資料集,並完成表單的資料存取部份。

若要建立資料連接和資料配接器

  1. 從 [工具箱] 的 [資料] 索引標籤,將 OleDbDataAdapter 物件拖曳至表單。
    注意   您也可以使用 SqlDataAdapter,它已經過最佳化處理,可與 SQL Server 7.0 (含) 以後版本搭配使用。在這個逐步解說中,使用 OleDbDataAdapter 是因為它較為泛用,能夠提供任何 OLE DB 相容資料來源的 ADO.NET 存取。

    [資料配接器組態精靈] 啟動後,可協助您建立連接和配接器。

  2. 在精靈中,請執行以下步驟:
    1. 在第二個窗格中,建立或選擇指向 SQL Server Northwind 資料庫的連接。
      注意   在您所使用的 SQL Server 上,您必須具有適當的讀/寫權限。如果 SQL Server 是和 IIS 在同一部電腦上,建議您在建立連接時指定 Windows 整合安全性。除此之外,您可以指定使用者名稱和密碼,並將這些資訊和連接一起儲存,但這樣的做法會犧牲了安全性。如需詳細資訊,請參閱從 Web 應用程式存取 SQL Server
    2. 在第三個窗格中,指定您要使用 SQL 陳述式來存取資料庫。
    3. 在第四個窗格中,建立下列 SQL 陳述式:
      SELECT CategoryID, CategoryName, Description
      FROM Categories
      

      如需建置 SQL 陳述式的協助,請按一下 [查詢產生器] 以啟動 [查詢產生器] 對話方塊。

      注意   在這個逐步解說中,會以 categories 資料表中所有的資料列來填入資料集。在實際執行的應用程式中,通常是藉由建立只傳回所需資料行和資料列的查詢,來最佳化資料存取。如需範例,請參閱逐步解說:在 Windows Form 中使用參數型查詢以顯示資料
    4. 按一下 [完成]。

      精靈會建立連接 (OleDbConnection1),其中包含有關如何存取資料庫的資訊。您也會得到一個資料配接器 (OleDbDataAdapter1),其中包含一個查詢,定義您在資料庫中要存取的資料表和資料行。

  3. 精靈完成後,請根據您在此程序中所建立的 SQL 查詢來產生資料集。如需詳細資訊,請參閱下一節。
    注意   如需詳細資訊,請在執行精靈時按一下 [說明] 或參閱資料配接器組態精靈。如需資料配接器的詳細資訊,請參閱資料配接器簡介

建立資料集

建立連接資料庫的方法和指定所需的資訊之後 (透過資料配接器中的 SQL 命令),便可以使用 Visual Studio 來建立資料集。Visual Studio 可以根據您在資料配接器中指定的查詢,自動產生資料集。資料集是 DataSet 類別的一項執行個體,並根據對應的結構描述 (.xsd 檔),以描述該類別的項目 (資料表、資料行和條件約束)。如需資料集與結構描述間關聯性的詳細資訊,請參閱使用 ADO.NET 存取資料簡介

若要產生資料集

  1. 從 [資料] 功能表中,選擇 [產生資料集]。
    秘訣   如果沒有看到 [資料] 功能表,請按一下表單;表單必須具有焦點 (Focus),功能表才能出現。

    接著出現 [加入資料集] 對話方塊。

  2. 選擇 [新增] 選項,並將資料集命名為 dsCategories

    在 [選擇要加入資料集的資料表] 下方的清單中,應會選取 Categories 資料表。

  3. 選取 [將此資料集加入設計工具中],再按一下 [確定]。

    Visual Studio 會產生具型別資料集類別 (dsCategories) 和定義資料集的結構描述。在方案總管中可以看到新的結構描述 (dsCategories.xsd)。

    秘訣   在方案總管中,按一下 [顯示所有檔案] 工具列按鈕,即可看到結構描述檔案的 .vb 或 .cs 相依檔案,其中包含可定義新資料集類別的程式碼。

    最後,Visual Studio 會在表單中加入新資料集類別 (DsCategories1) 的執行個體。

現在您已設定好所需的一切,可以由資料庫中取得資訊並將其放入資料集。

加入 DataGrid 以顯示資料

這個逐步解說會使用 DataGrid Web 伺服器控制項,顯示 Categories 資料表的資訊。您也可使用 DataListRepeater 控制項來達到同樣的效果。不過,DataGrid 控制項是最容易設定的控制項 (例如,您不需要為其建立任何範本),這樣能讓您專心於逐步解說的資料部份。

若要加入並設定控制項

  1. 從 [工具箱] 的 [Web Form] 索引標籤中,將 DataGrid 控制項拖曳至網頁上。
  2. 在 [屬性] 視窗下方選擇 [自動格式設定] 連結,並為資料格選取預先定義的格式。
  3. DataSource 屬性中,選取 DsCategories1 當做資料來源。這會將資料格繫結至整個資料集。
  4. DataMember 屬性中,選取 categories。如果資料來源包含一個以上的可繫結物件,您可使用 DataMember 屬性 (Property) 來指定要繫結哪個物件。

    設定這兩個屬性會將 DsCategories1 資料集中 categories 資料的資料表 (Data Table) 繫結至資料格。

填入資料集並在 DataGrid 控制項中顯示資料

雖然資料格繫結至您建立的資料集,但是資料集本身並不會自動填入。相反地,您必須藉由呼叫資料配接器方法來自行填入資料集。如需填入資料集的詳細資訊,請參閱資料集簡介

即使在填入資料集後,DataGrid 控制項還是不會自動顯示資料。您必須明確將資料格繫結至其資料來源。如需詳細資訊,請參閱 Web Form 網頁的資料繫結簡介

若要填入資料集並在 DataGrid 控制項中顯示資料

  1. 連按兩下網頁,以便在程式碼編輯器中顯示網頁的類別檔案。
  2. Page_Load 事件處理常式中,呼叫資料配接器的 Fill 方法,並將要填入的資料集傳遞給該方法:
    OleDbDataAdapter1.Fill(DsCategories1)
    
  3. 呼叫 DataGrid 控制項的 DataBind 方法,將控制項繫結至資料集。

    您不需要在每次的往返作業都重新填入資料集和繫結資料格。一旦在 DataGrid 控制項中填入資料後,每次張貼網頁時,就會將它的值保留在檢視狀態中。因此,您只需要在第一次呼叫網頁時填入資料集和繫結資料格。您可使用網頁的 IsPostBack 屬性 (Property) 來加以測試。

    完整的處理常式會如下所示:

    ' Visual Basic
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       'Put user code to initialize the page here
       If Not IsPostBack Then
          OleDbDataAdapter1.Fill(DsCategories1)
          DataGrid1.DataBind()
       End If
    End Sub
    
    // C#
    private void Page_Load(object sender, System.EventArgs e)
    {
       // Put user code to initialize the page here
       if ( !IsPostBack)
       {
          oleDbDataAdapter1.Fill(dsCategories1);
          DataGrid1.DataBind();
       }
    }
    

測試

在加入程式碼之後,接著就會測試 Web Form 網頁中的資料存取。

若要測試 Web Form 網頁

  1. 儲存 Web 網頁。
  2. 在 [方案總管] 中,以滑鼠右鍵按一下網頁,並選擇 [在瀏覽器中檢視]。

    確認資料格中是否顯示類別的清單。

下一步

  • 利用變更色彩、字型等來格式化資料格。
  • 在資料格中只顯示所選取的資訊。在許多情況下,您將會根據使用者在 Run Time 時提供的資訊來進行顯示 (例如顯示來自特定城市的作者)。若要這樣做,您必須建立參數型查詢。如需詳細資訊,請參閱逐步解說:在 Windows Form 中使用參數型查詢以顯示資料
  • 使用資料讀取器來取代資料集當作資料格的資料來源。在這種資料為唯讀的網頁中,通常直接從資料庫取得資料要比先建立並填入資料集來得有效率。如需範例,請參閱逐步解說:在 Web Form 網頁中建立唯讀資料存取
  • 將資料存取與使用者介面分開。在這個逐步解說中,您建立的表單多少是以直接的方式來存取資料 (透過資料集)。建立可處理資料存取的資料存取元件,則是一項較有彈性且可修改的設計,如此一來表單 (也就是使用者介面) 就可以和所需的元件互動。同一元件可用於多個表單中 (也可用於其他元件),進而排除了替每個表單重新設計其資料存取的負荷量和冗餘。如需建立元件架構資料存取的詳細資訊,請參閱逐步解說:建立分散式應用程式
  • 瞭解與 Web Form 相關的安全性問題。如需詳細資訊,請參閱 Web 應用程式安全性威脅概觀

請參閱

Web Form 網頁的資料存取 | 資料集簡介

顯示:
© 2015 Microsoft