使用 ADO.NET 将表值参数传递给 SQL Server 存储过程
本指南演示如何使用 ADO.NET 的表值参数将结构化数据(例如表或数组)传输到 SQL Server 存储过程。 请按照以下步骤操作:
CREATE TYPE
语句构建表值数据。 例如:<code class="language-sql">CREATE TYPE [dbo].[MyDataType] AS TABLE ( ID INT, Name NVARCHAR(50) )</code>
<code class="language-sql">CREATE PROCEDURE [dbo].[MyProcedure] ( @myData [dbo].[MyDataType] READONLY ) AS BEGIN SELECT * FROM @myData END</code>
DataTable
并用您想要传递的数据填充它。<code class="language-csharp">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);</code>
SqlParameter
对象并设置其属性:ParameterName
:必须与存储过程的参数名称匹配。SqlDbType
:设置为 Structured
。Value
:将 DataTable
指定为值。将此参数添加到您的命令对象中:
<code class="language-csharp">SqlParameter parameter = new SqlParameter(); parameter.ParameterName = "@myData"; parameter.SqlDbType = System.Data.SqlDbType.Structured; parameter.Value = myDataTable; command.Parameters.Add(parameter);</code>
通过执行以下步骤,您可以有效地将表值参数从 ADO.NET 应用程序传递到 SQL Server 存储过程。
以上是如何将表值参数从 ADO.NET 传递到 SQL Server 存储过程?的详细内容。更多信息请关注PHP中文网其他相关文章!