In My Code i am passing string result value to my stored procedure
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);
}
Default SqlDbType.VarChar Size is 1 to 8000 characters. My Question is What if my string variable result has size more than 8000 characters
And what is solution for this ?
My Stored Procedure Look like this
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;
}
Database is SQL SERVER 2008
For a
VARCHAR(MAX), you need to pass -1 as the size when adding a parameter.