c# 使用 Enterprise-Library

c# using Enterprise-Library

我们如何使用企业库将数据 table 传递给 c# 中的存储过程?

我正在使用命令 cmd.AddInParameter(objDbCommand, DBAccessDetails.dataTablePrm, SqlDbType.Structured, curatedListprm); 然后是: 将 nvarchar 值 'ZAQ' 转换为数据类型 int.

时转换失败

table 值参数“@data”的数据不符合参数的 table 类型。 SQL 服务器错误为:245,状态:1

请告诉我我做了什么,有什么问题?

首先您需要创建您的用户定义 table 类型

CREATE TYPE [schema].[tableName] AS TABLE(
table columns and types )
GO

然后您需要创建存储过程以获取 table 值参数

create procedure procName
(
@tvp dbo.tableNamereadonly
)

然后你需要通过 .Net 传递你的数据table,像这样

var param = new SqlParameter("@tvp" Sqldbtype.Structured);
param.Value = {your data table}