private int ValueSize(object value)
{
if (value is SqlString)
{
if (((SqlString)value).IsNull)
return 0;
return ((SqlString)value).Value.Length;
}
if (value is SqlChars)
{
if (((SqlChars)value).IsNull)
return 0;
return ((SqlChars)value).Value.Length;
}
if (value is SqlBinary)
{
if (((SqlBinary)value).IsNull)
return 0;
return ((SqlBinary)value).Length;
}
if (value is SqlBytes)
{
if (((SqlBytes)value).IsNull)
return 0;
return (int)(((SqlBytes)value).Length);
}
if (value is DataFeed)
{
// Unknown length
return 0;
}
return ValueSizeCore(value);
}