Я вызываю SQL-процесс, который имеет 3 параметра OUTPUT. После вызова процедуры один из параметров не возвращает значение, когда два других делают. Профилировщик показывает, что возвращаются все 3 значения.
Параметры указаны в процедуре следующим образом ...
@UsrVariableID INT OUTPUT,
@OrganisationName NVARCHAR(256) OUTPUT,
@Visible bit OUTPUT
и код, вызывающий процесс, выглядит следующим образом ...
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.
Мне интересно, если это так, потому что параметр имеет тип string в коде, но NVARCHAR в proc.
У кого-нибудь есть идеи?