/// <summary> /// 设置命令参数对象的 DbType属性 /// </summary> /// <param name="parameter">命令参数对象</param> /// <param name="dbType">DbType属性</param> public static void DbType(this SQLiteParameter parameter, object dbType) { if (dbType != null) { if (dbType is DbType) { parameter.DbType = (DbType)dbType; } else { DbTypeUtils.ThrowException(dbType); } } }
/// <summary> /// 是否日期+时间+精度类型 /// </summary> /// <param name="dbType">DbType属性</param> public static bool IsDateTime2(object dbType) { if (dbType == null) { return(false); } else if (dbType is DbType) { return(((DbType)dbType) == System.Data.DbType.DateTime2); } else { return(DbTypeUtils.ThrowException(dbType)); } }
/// <summary> /// 检查指定的数据类型是否为 Unicode /// </summary> /// <param name="dbType">数据类型 <see cref="System.Data.DbType"/> </param> /// <returns></returns> public static bool IsUnicode(object dbType) { if (dbType == null) { return(true); } else if (dbType is DbType) { return(((DbType)dbType) == System.Data.DbType.String || ((DbType)dbType) == System.Data.DbType.StringFixedLength); } else if (dbType is SqlDbType) { return(((SqlDbType)dbType) == SqlDbType.NVarChar || ((SqlDbType)dbType) == SqlDbType.NChar || ((SqlDbType)dbType) == SqlDbType.NText); } else { return(DbTypeUtils.ThrowException(dbType)); } }
/// <summary> /// 是否时间类型 /// </summary> public static bool IsTime(object dbType) { if (dbType == null) { return(false); } else if (dbType is DbType) { return(((DbType)dbType) == System.Data.DbType.Time); } else if (dbType is OracleDbType) { return(((OracleDbType)dbType) == OracleDbType.IntervalDS); } else { return(DbTypeUtils.ThrowException(dbType)); } }
/// <summary> /// 是否日期+时间+精度+时区类型 /// </summary> public static bool IsDateTimeOffset(object dbType) { if (dbType == null) { return(false); } else if (dbType is DbType) { return(((DbType)dbType) == System.Data.DbType.DateTimeOffset); } else if (dbType is OracleDbType) { return(((OracleDbType)dbType) == OracleDbType.TimeStampTZ);// || ((OracleDbType)dbType) == OracleDbType.TimeStampLTZ; } else { return(DbTypeUtils.ThrowException(dbType)); } }
/// <summary> /// 是否日期+时间+精度+时区类型 /// </summary> /// <param name="dbType">DbType属性</param> public static bool IsDateTimeOffset(object dbType) { #if netcore if (dbType == null) { return(false); } else if (dbType is DbType) { return(((DbType)dbType) == System.Data.DbType.DateTimeOffset); } else if (dbType is NpgsqlDbType) { return(((NpgsqlDbType)dbType) == NpgsqlDbType.TimestampTz); } else { return(DbTypeUtils.ThrowException(dbType)); } #endif #if !netcore if (dbType == null) { return(false); } else if (dbType is DbType) { return(((DbType)dbType) == System.Data.DbType.DateTimeOffset); } else if (dbType is NpgsqlDbType) { return(((NpgsqlDbType)dbType) == NpgsqlDbType.TimestampTZ); } else { return(DbTypeUtils.ThrowException(dbType)); } #endif }
/// <summary> /// 设置命令参数对象的 DbType属性 /// </summary> /// <param name="parameter">命令参数对象</param> /// <param name="dbType">DbType属性</param> public static void DbType(this SqlParameter parameter, object dbType) { if (dbType != null) { if (dbType is DbType) { parameter.DbType = (DbType)dbType; } else if (dbType is SqlDbType) { parameter.SqlDbType = (SqlDbType)dbType; } else { DbTypeUtils.ThrowException(dbType); } } else if (parameter.Value != null && parameter.Value is DateTime && dbType == null) { // 如果 DateTime 没有指定 DbType,则需要转为 DateTime2才能保持原有的精度 parameter.DbType = System.Data.DbType.DateTime2; } }