私のコードではstring result
、ストアドプロシージャに値を渡しています
try
{
using (SqlStoredProcedure sspObj = new SqlStoredProcedure("dbo.usp_CloseEvent", Connection, CommandType.StoredProcedure))
{
sspObj.AddParameterWithValue("@Close", SqlDbType.VarChar, 0, ParameterDirection.Input, result);
sspObj.ExecuteNonQuery();
sspObj.Dispose();
}
}
catch (Exception xObj)
{
Console.WriteLine("Error >> " + xObj.Message);
}
デフォルトSqlDbType.VarChar
のサイズは 1 ~ 8000 文字です。私の質問は、変数のサイズが 8000 文字を超える場合はどうなるかですstring
result
そして、これに対する解決策は何ですか?
私のストアドプロシージャは次のようになります
ALTER PROCEDURE [dbo].[usp_CloseEvent]
@Close VarChar(Max)
AS
SqlStoredProcedure.cs
virtual public SqlParameter AddParameterWithValue(string parameterName,
SqlDbType dbType,
int size,
ParameterDirection direction,
object value) {
SqlParameter p = this.AddParameter(parameterName, dbType, size, direction);
if (value == null) {
value = DBNull.Value;
}
p.Value = value;
return p;
}
データベースは SQL SERVER 2008 です