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;
}
}
}
}
}
}