public static DbType ToDbType(Type type, ref object realValue) { DbType dbType = DbType.AnsiString; if (type.Equals(typeof(string))) { dbType = DbType.AnsiString; } else if (type.Equals(typeof(short))) { dbType = DbType.Int16; } else if (type.Equals(typeof(int))) { dbType = DbType.Int32; } else if (type.Equals(typeof(long))) { dbType = DbType.Int64; } else if (type.Equals(typeof(DateTime))) { dbType = DbType.DateTime; } else if (type.Equals(typeof(bool))) { dbType = DbType.Boolean; realValue = (bool.Parse(realValue.ToString()) ? 1 : 0); } else if (type.Equals(typeof(double))) { dbType = DbType.Double; } else if (type.Equals(typeof(float))) { dbType = DbType.Single; } else if (type.Equals(typeof(byte))) { dbType = DbType.Byte; } else if (type.Equals(typeof(byte[]))) { dbType = DbType.Binary; } else if (type.GetTypeInfo().IsSubclassOf(typeof(ICode))) { dbType = DbType.AnsiString; } else if (type.GetTypeInfo().IsSubclassOf(typeof(INumericCode))) { dbType = DbType.Int32; } MapperParameter.ChangeToSqlValue(dbType, ref realValue); return(dbType); }
public static DbType ToDbType(SqlDataType type, ref object realValue) { DbType dbType = DbType.AnsiString; if (type == SqlDataType.NVarChar) { dbType = DbType.String; } else if (type == SqlDataType.Char) { dbType = DbType.AnsiStringFixedLength; if (realValue is bool) { realValue = ((bool)realValue ? "Y" : "N"); } } else if (type == SqlDataType.NChar) { dbType = DbType.StringFixedLength; } else if (type == SqlDataType.Int) { dbType = DbType.Int32; } else if (type == SqlDataType.SmallInt) { dbType = DbType.Int16; } else if (type == SqlDataType.BigInt) { dbType = DbType.Int64; } else if (type == SqlDataType.DateTime) { dbType = DbType.DateTime; } else if (type == SqlDataType.Bit) { dbType = DbType.Boolean; realValue = (bool.Parse(realValue.ToString()) ? 1 : 0); } else if (type == SqlDataType.Decimal) { dbType = DbType.Decimal; } else if (type == SqlDataType.Binary) { dbType = DbType.Binary; } MapperParameter.ChangeToSqlValue(dbType, ref realValue); return(dbType); }