C#でSQLServerのストアドを実行する際、Intput/Outputのパラメータを指定しますが、VarCharはOutputパラメータだけ桁数を指定しないといけません。 Outputパラメータの桁数を指定し忘れると「'String[1]: Size プロパティのサイズが 0 です。これは無効です。」例外が発生します。
cmd = new SqlCommand("スキーマ名.ストアド名", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("抽出条件", SqlDbType.VarChar));
cmd.Parameters["抽出条件"].Direction = ParameterDirection.Input;
cmd.Parameters["抽出条件"].Value = 抽出条件;
cmd.Parameters.Add(new SqlParameter("結果", SqlDbType.VarChar, 8000)); // VarChar(8000)
cmd.Parameters["結果"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
return (string)cmd.Parameters["結果"].Value;
最近のコメント