我收到以下错误
"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"
我试图通过发送一些动态参数来执行存储过程;发送的参数是字符串;存储过程需要这些参数的 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
parameters.Add("jsonResult", dbType: DbType.String, size: -1, direction: ParameterDirection.Output);
(您将值传递为 16,即 DbType.String 的整数值 - 并且您没有指定“max”部分)