首頁 > 資料庫 > mysql教程 > 如何將表值參數從 ADO.NET 傳遞到 SQL Server 預存程序?

如何將表值參數從 ADO.NET 傳遞到 SQL Server 預存程序?

Linda Hamilton
發布: 2025-01-11 06:28:42
原創
770 人瀏覽過

How to Pass Table-Valued Parameters from ADO.NET to SQL Server Stored Procedures?

使用 ADO.NET 將表值參數傳遞給 SQL Server 預存程序

本指南示範如何使用 ADO.NET 的表值參數將結構化資料(例如資料表或陣列)傳送至 SQL Server 預存程序。 請依照以下步驟操作:

  1. 定義 SQL Server 使用者定義的表格類型: 使用 CREATE TYPE 語句建立表格值資料。 例如:
CREATE TYPE [dbo].[MyDataType] AS TABLE
(
    ID INT,
    Name NVARCHAR(50)
)
登入後複製
  1. 建立預存程序: 將表值參數宣告為預存程序中的唯讀輸入參數。例:
CREATE PROCEDURE [dbo].[MyProcedure]
(
    @myData [dbo].[MyDataType] READONLY
)
AS
BEGIN
    SELECT * FROM @myData
END
登入後複製
  1. 在 C# 中填入資料表: 在 C# 程式碼中建立一個 DataTable 並用您想要傳遞的資料填入它。
DataTable myDataTable = new DataTable("MyDataType");
myDataTable.Columns.Add("Name", typeof(string));
myDataTable.Columns.Add("Id", typeof(Int32));
myDataTable.Rows.Add("XYZ", 1);
myDataTable.Rows.Add("ABC", 2);
登入後複製
  1. 建立並新增 SQL 參數: 建立一個 SqlParameter 物件並設定其屬性:
  • ParameterName:必須與預存程序的參數名稱相符。
  • SqlDbType:設定為 Structured
  • Value:將 DataTable 指定為值。

將此參數新增至您的命令物件:

SqlParameter parameter = new SqlParameter();
parameter.ParameterName = "@myData";
parameter.SqlDbType = System.Data.SqlDbType.Structured;
parameter.Value = myDataTable;
command.Parameters.Add(parameter);
登入後複製

透過執行下列步驟,您可以有效地將表值參數從 ADO.NET 應用程式傳遞到 SQL Server 預存程序。

以上是如何將表值參數從 ADO.NET 傳遞到 SQL Server 預存程序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板