我正在调用具有 3 个 OUTPUT 参数的 SQL proc。在调用 proc 之后,其中一个参数不会在其他两个参数返回值时返回值。Profiler 显示所有 3 个值都被返回。
参数在过程中声明如下...
@UsrVariableID INT OUTPUT,
@OrganisationName NVARCHAR(256) OUTPUT,
@Visible bit OUTPUT
调用proc的代码是这样的......
cm.Parameters.AddWithValue("@OrganisationName", name);
cm.Parameters["@OrganisationName"].Direction = ParameterDirection.Output;
cm.Parameters.AddWithValue("@Visible", visible);
cm.Parameters["@Visible"].Direction = ParameterDirection.Output;
cm.ExecuteNonQuery();
name = cm.Parameters["@OrganisationName"].Value.ToString();
visible = bool.Parse(cm.Parameters["@Visible"].Value.ToString());
id = int.Parse(cm.Parameters["@UsrVariableID"].Value.ToString());
失败的参数是@OrganisationName。
我想知道是不是因为参数在代码中是字符串类型,但在过程中是 NVARCHAR 类型。
有人有什么想法吗?