using System.Data; using System.Data.Common; namespace CSFramework.DB { /// /// 参数操作工具 /// public static class ParameterHelper { /// /// 添加参数 /// /// /// /// /// /// public static DbParameter AddParameter(DbCommand cmd, string ParameterName, object ParameterValue, DbType dbType) { var dbp = cmd.CreateParameter(); dbp.ParameterName = ParameterName; dbp.Value = ParameterValue; dbp.DbType = dbType; cmd.Parameters.Add(dbp); return dbp; } /// /// 添加参数 /// /// 命令 /// 对象(匹配参数名称和对象的属性名称) /// 参数前缀,如:@,?,: public static void AddParameter(DbCommand cmd, object parameters, string paramPrefix) { if (parameters != null) { var T = parameters.GetType(); var properties = T.GetProperties(); foreach (var property in properties) { var value = property.GetValue(parameters, null); var paramName = paramPrefix + property.Name; if (value != null && !cmd.Parameters.Contains(paramName)) { var dbp = cmd.CreateParameter(); dbp.ParameterName = paramName; dbp.Value = value; dbp.DbType = DBDataTypes.GetDbType(property.PropertyType); cmd.Parameters.Add(dbp); if (dbp.DbType == DbType.DateTime) if (CommonMethods.ToSqlDateTime(value) <= CommonMethods.MinSqlDate) dbp.Value = CommonMethods.MinSqlDate; if (dbp.DbType == DbType.Int16 || dbp.DbType == DbType.Int32 || dbp.DbType == DbType.Int64 || dbp.DbType == DbType.Single || dbp.DbType == DbType.Double || dbp.DbType == DbType.Decimal) if (CommonMethods.ToDecimal(value) == 0) dbp.Value = 0; } } } } } }