.net 使用varchar类型的参数执行存储过程时出现Dapper错误[已关闭]

ergxz8rk  于 2023-10-21  发布在  .NET
关注(0)|答案(1)|浏览(128)

已关闭此问题为not reproducible or was caused by typos。它目前不接受回答。

此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
昨天关门了。
Improve this question
我得到以下错误

"Error converting data type nvarchar(max) to int.
2023-10-19 StartDate
2023-10-19 EndDate
Start ConvertedDate 2023-10-19
End ConvertedDate 2023-10-19"

我正在尝试通过发送一些动态参数来执行存储过程;发送的参数为string s;存储过程需要这些参数的varchar类型;
下面是我尝试执行的代码:

var parameters = new DynamicParameters();
parameters.Add("Code", diaryUserCode, DbType.String);
parameters.Add("SDate", new DbString() { Value = startDate, IsAnsi = true }, DbType.AnsiString);
parameters.Add("EDate", new DbString() { Value = endDate, IsAnsi = true }, DbType.AnsiString);
parameters.Add("jsonResult", DbType.String, direction: ParameterDirection.Output);
await connection.ExecuteAsync
(procedureName, parameters, commandType: CommandType.StoredProcedure);

这是程序签名

CREATE   PROCEDURE [dbo].[Test] (
@Code VARCHAR(30)
,@SDate VARCHAR(30)
,@EDate VARCHAR(30)
,@jsonResult NVARCHAR(MAX) OUTPUT
)
AS
iklwldmw

iklwldmw1#

parameters.Add("jsonResult", dbType: DbType.String, size: -1, 
    direction: ParameterDirection.Output);

(you我们将 value 作为16传递,DbType.String的整数值-并且您没有指定“max”部分)

相关问题