/// <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(SqlServerUtils.ThrowException(dbType)); } }
/// <summary> /// 是否日期+时间类型 /// </summary> /// <param name="dbType">DbType属性</param> /// <returns></returns> public static bool IsDateTime(object dbType) { if (dbType == null) { return(false); } else if (dbType is DbType) { return(((DbType)dbType) == System.Data.DbType.DateTime); } else if (dbType is SqlDbType) { return(((SqlDbType)dbType) == SqlDbType.DateTime); } else { return(SqlServerUtils.ThrowException(dbType)); } }
/// <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 { SqlServerUtils.ThrowException(dbType); } } else if (parameter.Value != null && parameter.Value is DateTime && dbType == null) { // 如果 DateTime 没有指定 DbType,则需要转为 DateTime2才能保持原有的精度 parameter.DbType = System.Data.DbType.DateTime2; } }