3つのOUTPUTパラメータを持つSQLプロシージャを呼び出しています。procの呼び出し後、他の2つが値を返す場合、パラメータの1つは値を返しません。プロファイラーは、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です。
paramはコードではstring型ですが、procではNVARCHARであるためかどうか疑問に思います。
誰かアイデアがありますか?