private void SetTypeFromValue()
{
if (paramValue == null || paramValue == DBNull.Value) return;
if (paramValue is Guid)
DbType = DbType.Guid;
else if (paramValue is TimeSpan)
DbType = DbType.Time;
else if (paramValue is bool)
DbType = DbType.Byte;
else
{
TypeCode tc = Type.GetTypeCode(paramValue.GetType());
switch (tc)
{
case TypeCode.SByte:
DbType = DbType.SByte;
break;
case TypeCode.Byte:
DbType = DbType.Byte;
break;
case TypeCode.Int16:
DbType = DbType.Int16;
break;
case TypeCode.UInt16:
DbType = DbType.UInt16;
break;
case TypeCode.Int32:
DbType = DbType.Int32;
break;
case TypeCode.UInt32:
DbType = DbType.UInt32;
break;
case TypeCode.Int64:
DbType = DbType.Int64;
break;
case TypeCode.UInt64:
DbType = DbType.UInt64;
break;
case TypeCode.DateTime:
DbType = DbType.DateTime;
break;
case TypeCode.String:
DbType = DbType.String;
break;
case TypeCode.Single:
DbType = DbType.Single;
break;
case TypeCode.Double:
DbType = DbType.Double;
break;
case TypeCode.Decimal:
DbType = DbType.Decimal;
break;
case TypeCode.Object:
default:
DbType = DbType.Object;
break;
}
}
}