C#でSQLServerのストアドを実行する際、Intput/Outputのパラメータを指定しますが、VarCharはOutputパラメータだけ桁数を指定しないといけません。
Outputパラメータの桁数を指定し忘れると「’String[1]: Size プロパティのサイズが 0 です。これは無効です。」例外が発生します。
1 2 | 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;
 |
コメント