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