我知道还有一些关于此错误的其他线程/问题,但如果可能的话,我想获得更多的见解。我们已经看到对于具有整数类型输出参数的特定代码段间歇性地发生此错误。
这就是我们定义参数的方式:
SqlParameter errorParam = new SqlParameter("@ErrorCode", errorCode);
errorParam.Direction = ParameterDirection.Output;
您会注意到没有指定大小,也没有指定 DBType。似乎错误并不总是发生,但有时会抛出:
在 System.Data.SqlClient.SqlCommand.SetUpRPCParameters(_SqlRPC rpc, Int32 startCount, Boolean inSchema, SqlParameterCollection 参数) 处的 System.Data.SqlClient.SqlParameter.Validate(Int32 index, Boolean isCommandProc) Size 属性的大小无效。
我假设我需要添加 DBType 和 Size 设置,但可能是这种情况发生的根本原因是什么,并且仅在某些情况下发生?
注意,SQL中的参数定义为:
@ErrorCode INT OUT ,