程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET 2.0數據教程之四十七:使用SqlDataSource控件查詢數據

ASP.NET 2.0數據教程之四十七:使用SqlDataSource控件查詢數據

編輯:關於ASP.NET

返回“ASP.NET 2.0數據教程目錄”

導言

到目前為止,我們所做的教程都使用了一個包含表示層、業務邏 輯層以及數據訪問層的分層架構。在第一節教程(創建一個數據訪問層)中,我 們講解了數據訪問層(DAL),第二節教程(創建一個業務邏輯層)中,我們又講 解了業務邏輯層。從教程“使用ObjectDataSource展現數據”開始, 我們看到了如何在這個架構裡面,通過使用ASP.NET2.0中新出現的 ObjectDataSource控件在表示層展示數據。

所有的這些教程都是使用這樣 的架構來操作數據的,當然,我們也可以繞過這個架構,直接在ASP.NET頁面上訪 問、插入、更新以及刪除數據庫中的數據。要這樣做的話,你需要將特定的數據 庫查詢以及業務邏輯直接放到網頁中。對於一個很大的或者很復雜的應用程序來 說,設計、實現以及使用一個分層的架構,對其是否能夠順利完成以及日後的可 升級性、可維護性都將是非常重要的。不過,對於一個非常簡單的、就一個人用 的小程序來說,開發一個所謂健壯的架構興許就不那麼必要了。

ASP.NET2.0提供了五個內建的數據源控件——SqlDataSource 、AccessDataSource、ObjectDataSource、XmlDataSource以及 SiteMapDataSource。SqlDataSource可以用來直接訪問和修改關系型數據庫中的 數據,比如Microsoft SQL Server、Microsoft Access、Oracle、 MySQL……等等。在本教程以及接下來的三個教程中,我們將講解如 何使用SqlDataSource,如何用它來查詢數據庫中的數據,以及如何用它來插入、 更新、刪除數據。

圖一:ASP.NET2.0含有5個內建的數據源控件

比較 ObjectDataSource和SqlDataSource

在概念上來講,ObjectDataSource和 SqlDataSource都是面向數據的簡單代理。就像在教程“使用 ObjectDataSource展現數據”中所討論的那樣,ObjectDataSource擁有一些 指示對象類型的屬性(Properties),這些對象類型提供了數據以及方法以便於 查詢、插入、更新以及刪除。當ObjectDataSource的這些屬性被配置好之後,一 個數據Web控件(data Web control)——比如GridView、 DetailsView或是DataList——就能夠綁定它了,並通過 ObjectDataSource的Select()、Insert()、Delete()以及Update()方法與潛在的 架構進行交互。

SqlDataSource提供了相同的功能,只不過是操作一個關 系型數據庫而不是一個對象庫。通過SqlDataSource,我們需要給出一個數據庫連 接字符串,還有SQL語句或是存儲過程,然後就可以執行插入、更新、刪除、查詢 操作了。當調用SqlDataSource的Select()、Insert()、Delete()以及Update()方 法時,會連接到指定的數據庫並發出相應的SQL查詢。如下圖所示,這些方法都替 我們干了一些比較煩人的事情,包括連接數據庫、發出查詢請求以及返回查詢結 果。

圖二:SqlDataSource就像一個數據庫代理一樣

注意:在本教程 中,我們主要討論從數據庫獲取數據。在教程“使用SqlDataSource控件插 入、更新以及刪除數據”中,我們將看到如何配置SqlDataSource以支持插 入、更新以及刪除操作。

SqlDataSource控件與AccessDataSource控件

除了SqlDataSource控件之外,ASP.NET2.0還提供了一個叫做 AccessDataSource的控件。這兩個不同的控件讓很多剛剛接觸ASP.NET2.0的開發 人員產生了誤解,認為AccessDataSource控件就是專門為Microsoft Access設計 的,而SqlDataSource控件則是專門為Microsoft SQL Server設計的。實際上,雖 然AccessDataSource的確是專門為Microsoft Access而設計的,但SqlDataSource 卻是為任何能通過.NET訪問的關系型數據庫而設計的,包括任何兼容OleDb或ODBC 的數據存儲,比如Microsoft SQL Server、Microsoft Access、Oracle、 Informix、MySQL、PostgreSQL……等等。

AccessDataSource控件與SqlDataSource控件唯一的不同是數據庫連接信 息的指定方式。AccessDataSource控件僅需要一個指向Access數據庫文件的路徑 即可,而SqlDataSource則需要一個完整的連接字符串。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved