首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 資料教程 47:SqlDataSource 基礎查詢與 ObjectDataSource 比較

     編輯:關於ASP.NET

SqlDataSource 直接操作關聯式資料庫,適合中小型專案或快速原型。本教程介紹基本用法並與 ObjectDataSource 比較架構差異。

SqlDataSource 核心屬性

  • ConnectionString:資料庫連線字串 (支援 SQL Server、Oracle、MySQL、Access 等所有 ADO.NET Provider)。
  • SelectCommand:SELECT 陳述式或預存程序名稱。
  • SelectCommandType:Text (預設) / StoredProcedure。
  • DataSourceMode:DataSet (預設,適合分頁/排序) / DataReader (唯讀、順向、低記憶體)。

基本查詢範例

<asp:SqlDataSource ID="ProductsDS" runat="server"
    ConnectionString="%$ ConnectionStrings:Northwind %$"
    SelectCommand="SELECT ProductID, ProductName, UnitPrice FROM Products ORDER BY ProductName"
    DataSourceMode="DataSet">
</asp:SqlDataSource>

<asp:GridView ID="GridView1" runat="server" DataSourceID="ProductsDS" AllowPaging="True" AllowSorting="True" />

SqlDataSource vs ObjectDataSource 架構比較

SqlDataSource vs AccessDataSource

  • AccessDataSource:僅需 DataFile 指定 .mdb 路徑,專為 Access 設計。
  • SqlDataSource:需完整連線字串,支援所有 ADO.NET Provider (含 Access),彈性較高。

進階:DataSourceMode 選擇指南

  • DataSet:需分頁、排序、多次巡覽資料 → 預設選擇。
  • DataReader:唯讀、大量資料、僅單次繫結 → 記憶體效率較佳。

常見錯誤與解決

  • 連線字串錯誤:確認 `Web.config` `` 名稱與 `<%$ %>` 語法一致。
  • SQL 語法錯誤:在 SSMS 先測試 SQL,注意保留字需加 `[]` 或 `""`。
  • 參數型別不符:`Type` 屬性需與資料庫欄位型別對應 (Int32, String, Decimal, DateTime 等)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
面向ObjectDataSourceSqlDataSource
資料來源自訂類別 (BLL/DAL)關聯式資料庫 (ADO.NET)
查詢邏輯位置類別方法 (C#/VB)SQL 陳述式 / SP
參數對應方法參數SQL 參數 (@名稱)
型別安全編譯期強型別執行期驗證
測試性易於單元測試需資料庫整合測試
適用專案分層架構、中大型專案快速開發、小型專案、報表