相关疑难解决方法(0)

如何传递表值参数

我试图将表值参数传递给存储过程,但我不断得到一个异常(见下文).

SqlCommand c = new SqlCommand("getPermittedUsers", myConn) { CommandType = CommandType.StoredProcedure };

c.Parameters.AddWithValue("@intNotifyingUserId", notifyingUserId);
c.Parameters.AddWithValue("@tSelectedPdfIds", sharedPdfs).SqlDbType = SqlDbType.Structured;

SqlDataReader dr = c.ExecuteReader();
Run Code Online (Sandbox Code Playgroud)

类型在服务器上定义如下:

CREATE TYPE [dbo].[IdList] AS TABLE(
    [Id] [int] NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

我试图通过sharedPdfs为List<int>,和IQueryable<int>,但不断收到以下异常:

Object must implement IConvertible.

谁知道我做错了什么?文档暗示我应该能够将列表作为TVP传递但不提供任何示例.

谢谢.

.net c# ado.net

39
推荐指数
3
解决办法
4万
查看次数

SqlDbType.Structured是什么意思?

从msdn 网站我得到以下内容:

一种特殊数据类型,用于指定表值参数中包含的结构化数据.

似乎我的代码使用它而没有它(使用存储过程将表推送到DB).

有人可以解释它做了什么 - 我从定义中不理解它.

c# sqlcommand sqldbtype sqlparameter

8
推荐指数
1
解决办法
7412
查看次数

标签 统计

c# ×2

.net ×1

ado.net ×1

sqlcommand ×1

sqldbtype ×1

sqlparameter ×1