in MySQL.Data/src/MySqlParameter.cs [540:628]
private void SetDbType(DbType dbType)
{
_dbType = dbType;
switch (_dbType)
{
case DbType.Guid:
_mySqlDbType = MySqlDbType.Guid;
break;
case DbType.AnsiString:
case DbType.String:
_mySqlDbType = MySqlDbType.VarChar;
break;
case DbType.AnsiStringFixedLength:
case DbType.StringFixedLength:
_mySqlDbType = MySqlDbType.String;
break;
case DbType.Boolean:
case DbType.Byte:
_mySqlDbType = MySqlDbType.UByte;
break;
case DbType.SByte:
_mySqlDbType = MySqlDbType.Byte;
break;
case DbType.Date:
_mySqlDbType = MySqlDbType.Date;
break;
case DbType.DateTime:
case DbType.DateTimeOffset:
_mySqlDbType = MySqlDbType.DateTime;
break;
case DbType.Time:
_mySqlDbType = MySqlDbType.Time;
break;
case DbType.Single:
_mySqlDbType = MySqlDbType.Float;
break;
case DbType.Double:
_mySqlDbType = MySqlDbType.Double;
break;
case DbType.Int16:
_mySqlDbType = MySqlDbType.Int16;
break;
case DbType.UInt16:
_mySqlDbType = MySqlDbType.UInt16;
break;
case DbType.Int32:
_mySqlDbType = MySqlDbType.Int32;
break;
case DbType.UInt32:
_mySqlDbType = MySqlDbType.UInt32;
break;
case DbType.Int64:
_mySqlDbType = MySqlDbType.Int64;
break;
case DbType.UInt64:
_mySqlDbType = MySqlDbType.UInt64;
break;
case DbType.Decimal:
case DbType.Currency:
_mySqlDbType = MySqlDbType.Decimal;
break;
case DbType.Object:
case DbType.VarNumeric:
case DbType.Binary:
default:
_mySqlDbType = MySqlDbType.Blob;
break;
}
if (_dbType == DbType.Object)
{
var value = this._paramValue as byte[];
if (value != null && value.Length == GEOMETRY_LENGTH)
_mySqlDbType = MySqlDbType.Geometry;
}
ValueObject = MySqlField.GetIMySqlValue(_mySqlDbType);
}