首页 > 数据库 > mysql教程 > 如何将表值参数从 ADO.NET 传递到 SQL Server 存储过程?

如何将表值参数从 ADO.NET 传递到 SQL Server 存储过程?

Linda Hamilton
发布: 2025-01-11 06:28:42
原创
688 人浏览过

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 语句构建表值数据。 例如:
<code class="language-sql">CREATE TYPE [dbo].[MyDataType] AS TABLE
(
    ID INT,
    Name NVARCHAR(50)
)</code>
登录后复制
  1. 创建存储过程: 将表值参数声明为存储过程中的只读输入参数。示例:
<code class="language-sql">CREATE PROCEDURE [dbo].[MyProcedure]
(
    @myData [dbo].[MyDataType] READONLY
)
AS
BEGIN
    SELECT * FROM @myData
END</code>
登录后复制
  1. 在 C# 中填充数据表: 在 C# 代码中创建一个 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>
登录后复制
  1. 创建并添加 SQL 参数: 创建一个 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板