// Give the database type first crack at converting to DB required type
value=_dbType.MapParameterValue(value);
vardbtypeSet=false;
vart=value.GetType();
varunderlyingT=Nullable.GetUnderlyingType(t);
if(t.GetTypeInfo().IsEnum||(underlyingT!=null&&underlyingT.GetTypeInfo().IsEnum))// PostgreSQL .NET driver wont cast enum to int
{
p.Value=(int)value;
}
elseif(t==typeof(Guid))
{
p.Value=value;
p.DbType=DbType.Guid;
p.Size=40;
dbtypeSet=true;
}
elseif(t==typeof(string))
{
varstrValue=valueasstring;
if(strValue==null)
{
p.Size=0;
p.Value=DBNull.Value;
}
else
{
// out of memory exception occurs if trying to save more than 4000 characters to SQL Server CE NText column. Set before attempting to set Size, or Size will always max out at 4000
// Give the database type first crack at converting to DB required type
value=dbType.MapParameterValue(value);
vardbtypeSet=false;
vart=value.GetType();
varunderlyingT=Nullable.GetUnderlyingType(t);
if(t.GetTypeInfo().IsEnum||(underlyingT!=null&&underlyingT.GetTypeInfo().IsEnum))// PostgreSQL .NET driver wont cast enum to int
{
p.Value=(int)value;
}
elseif(t==typeof(Guid))
{
p.Value=value;
p.DbType=DbType.Guid;
p.Size=40;
dbtypeSet=true;
}
elseif(t==typeof(string))
{
varstrValue=valueasstring;
if(strValue==null)
{
p.Size=0;
p.Value=DBNull.Value;
}
else
{
// out of memory exception occurs if trying to save more than 4000 characters to SQL Server CE NText column. Set before attempting to set Size, or Size will always max out at 4000