共用方式為


在 .NET Framework 應用程式中建立參數化 TableAdapter 查詢

備註

類別 DataSet 和相關類別是 2000 年代初的舊版 .NET Framework 技術,可讓應用程式在應用程式與資料庫中斷連線時使用記憶體中的數據。 這些技術特別適用於可讓使用者修改數據並將變更保存回資料庫的應用程式。 雖然數據集是經過證實的成功技術,但新 .NET 應用程式的建議方法是使用 Entity Framework Core。 Entity Framework 提供更自然的方式,以表格式數據作為物件模型使用,而且具有更簡單的程序設計介面。

參數化查詢會傳回符合查詢內子句條件 WHERE 的數據。 例如,您可以將傳回客戶清單的 SQL 語句結尾新增 WHERE City = @City 至傳回客戶清單的結尾,將客戶列表參數化為只顯示特定城市中的客戶。

您可以在資料集設計工具中建立參數化 TableAdapter 查詢。您也可以使用 [數據] 功能表上的 [參數化數據源] 命令,在 Windows 應用程式中建立它們。 Parameterize 數據源命令會在表單上建立控制件,您可以在其中輸入參數值並執行查詢。

備註

建構參數化查詢時,請使用您要撰寫程式代碼之資料庫特有的參數表示法。 例如,Access 和 OleDb 數據源會使用問號 『?』 來表示參數,因此 WHERE 子句看起來會像這樣: WHERE City = ?

建立參數化的 TableAdapter 查詢

在數據集設計工具中建立參數化查詢

  • 建立新的 TableAdapter,並將包含所需參數的子句作為 WHERE 標記新增到 SQL 語句中。 如需詳細資訊,請參閱 建立及設定 TableAdapters

  • 將查詢新增至現有的 TableAdapter,並在 SQL 語句中加入具有所需參數的 WHERE 子句。

在設計數據系結表單時建立參數化查詢

  1. 在窗體上選擇已綁定至數據集的控制項。 如需詳細資訊,請參閱 將 Windows Forms 控件系結至 Visual Studio 中的數據

  2. 在 [ 數據] 功能表上,選取 [ 新增查詢]。

  3. 完成 [ 搜尋準則產生器 ] 對話框,將具有所需參數的 子句新增 WHERE 至 SQL 語句。

將查詢新增至現有的數據系結表單

  1. Windows Forms 設計工具中開啟表單,

  2. 在 [ 數據] 功能表上,選取 [ 新增查詢 ] 或 [ 數據智慧標記]。

    備註

    如果 [數據] 功能表上[新增查詢]不可用,請選取表單上的控件,以顯示您要加入參數化的數據源。 例如,如果表單在控件中 DataGridView 顯示數據,請選取它。 如果表單在個別控件中顯示數據,請選取任何數據綁定控件。

  3. 在 [ 選取數據源數據表 ] 區域中,選取您要新增參數化的數據表。

  4. 如果您要建立新的查詢,請在 [ 新增查詢名稱 ] 方塊中輸入名稱。

    在 [ 現有查詢名稱 ] 方塊中選取查詢。

  5. 在 [ 查詢文字框 ] 中,輸入接受參數的查詢。

  6. 請選擇 [確定]

    輸入參數的控制項和 [ 載入 ] 按鈕會新增至控件中的 ToolStrip 表單。

查詢 Null 值

當您想要查詢沒有目前值的記錄時,可以將 TableAdapter 參數指派為 Null 值。 例如,請考慮下列查詢,其 WHERE 子句中有 ShippedDate 參數:

SELECT CustomerID, OrderDate, ShippedDate
FROM Orders
WHERE (ShippedDate = @ShippedDate) OR (ShippedDate IS NULL)

如果這是 TableAdapter 上的查詢,您可以使用以下程式碼查詢所有未出貨的訂單:

ordersTableAdapter.FillByShippedDate(northwindDataSet.Orders, null);

若要讓查詢接受 Null 值:

  1. 數據集設計工具中,選取需要接受 Null 參數值的 TableAdapter 查詢。

  2. 在 [ 屬性] 視窗中,選取 [ 參數],然後選取省略號 (...) 按鈕以開啟 [參數集合編輯器]。

  3. 選取允許 Null 值的參數,並將 AllowDbNull 屬性設定為 true