using System.Data;
|
using System.Data.Common;
|
|
namespace CSFramework.DB
|
{
|
/// <summary>
|
/// 参数操作工具
|
/// </summary>
|
public static class ParameterHelper
|
{
|
/// <summary>
|
/// 添加参数
|
/// </summary>
|
/// <param name="cmd"></param>
|
/// <param name="ParameterName"></param>
|
/// <param name="ParameterValue"></param>
|
/// <param name="dbType"></param>
|
/// <returns></returns>
|
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;
|
}
|
|
/// <summary>
|
/// 添加参数
|
/// </summary>
|
/// <param name="cmd">命令</param>
|
/// <param name="parameters">对象(匹配参数名称和对象的属性名称)</param>
|
/// <param name="paramPrefix">参数前缀,如:@,?,:</param>
|
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;
|
}
|
}
|
}
|
}
|
}
|
}
|