/// <summary> /// 添加输出型的参数。只支持常用的几个参数类型,如果需要可以扩充。 /// </summary> /// <param name="parameterName">参数名称。比如 UserName。注意:参数名称不需要加前缀!</param> /// <param name="dbType">参数的类型</param> public virtual void AddNewOutParameter(string parameterName, DbType dbType) { DbParameter parameters = CommonFactory.CreateParameter(_dal.ParameterPrefix() + parameterName, _dal.DatabaseProvider); parameters.Direction = ParameterDirection.InputOutput; parameters.DbType = dbType; //添加存储过程的参数 _dal.Command.Parameters.Add(parameters); }
/// <summary> /// 添加输入型的参数,nvarchar、carchar、nchar、cahr需要设置参数大小的情况。 /// </summary> /// <param name="parameterName">参数名称。比如 UserName。注意:参数名称不需要加前缀!</param> /// <param name="parameterValue">参数值</param> /// <param name="parameterSize">参数的大小</param> public virtual void AddNewInParameter(string parameterName, object parameterValue, int parameterSize) { DbParameter parameter = CommonFactory.CreateParameter(_dal.ParameterPrefix() + parameterName, _dal.DatabaseProvider); parameter.Direction = ParameterDirection.Input; parameter.DbType = DbType.String; parameter.Size = parameterSize; parameter.Value = parameterValue; //添加存储过程的参数 _dal.Command.Parameters.Add(parameter); }
///// <summary> ///// 添加二进制数组型的参数。方向是输入(input) ///// </summary> ///// <param name="ParameterName">参数名称。比如 @UserName</param> ///// <param name="ParameterValue">参数值</param> //public virtual void AddNewInParameter(string ParameterName, Byte[] ParameterValue) //{ // DbParameter par = DataBaseFactory.CreateParameter(ParameterName,this.dal.ProviderName ); // ((System.Data.SqlClient.SqlParameter)par).SqlDbType = SqlDbType.Image; // par.Value = ParameterValue; // //添加存储过程的参数 // dal.myCommand.Parameters.Add(par); //} #endregion #endregion #region 泛型的方式添加参数 /* * /// <summary> * /// 泛型的方式添加参数 * /// </summary> * /// <typeparam name="T"></typeparam> * /// <param name="parameterName">存储过程的参数名称。比如 UserName。注意:参数名称不需要加前缀!</param> * /// <param name="parameterValue">存储过程的参数值。</param> * public virtual void AddNewInParameter<T>(string parameterName, T parameterValue) * { * DbParameter par = CommonFactory.CreateParameter(this.dal.ParameterPrefix() + parameterName, this.dal.DatabaseProvider); * par.Direction = ParameterDirection.Input ; * * switch (typeof(T).ToString()) * { * case "Int64": * //1 * par.DbType = DbType.Int64; break; * * case "Int32": * //2 * par.DbType = DbType.Int32; break; * * case "String": //ntext、text类型的,不能指定长度 * //4 * par.DbType = DbType.String; break; * * case "DateTime": * * //日期和时间 * par.DbType = DbType.DateTime; break; * * case "Decimal": * //添加金额参数 * par.DbType = DbType.Decimal; break; * * * * case "Boolean": * par.DbType = DbType.Boolean; break; * * case "Double": //小数 * par.DbType = DbType.Single; break; * * case "Single": * par.DbType = DbType.Single; break; * * case "Byte[]": //SQL Server 里面的Image类型 * ((System.Data.SqlClient.SqlParameter)par).SqlDbType = SqlDbType.Image; break; * * * } * * par.Value = parameterValue; * * //添加存储过程的参数 * dal.Command.Parameters.Add(par); * * * }*/ #endregion #region 输入型的参数 /// <summary> /// 添加输入型的参数,不用指定参数大小的情况。只支持常用的几个参数类型,如果需要可以扩充。 /// </summary> /// <param name="parameterName">参数名称。比如 UserName。注意:参数名称不需要加前缀!</param> /// <param name="parameterValue">参数值</param> public virtual void AddNewInParameter(string parameterName, object parameterValue) { DbParameter par = CommonFactory.CreateParameter(_dal.ParameterPrefix() + parameterName, _dal.DatabaseProvider); par.Direction = ParameterDirection.Input; if (parameterValue is Int64) { par.DbType = DbType.Int64; } else if (parameterValue is Int32) { par.DbType = DbType.Int32; } else if (parameterValue is DateTime) //日期和时间 { par.DbType = DbType.DateTime; } else if (parameterValue is Decimal) //添加金额参数 { par.DbType = DbType.Decimal; } else if (parameterValue is String) //ntext、text类型的,不能指定长度 { par.DbType = DbType.String; } else if (parameterValue is Boolean) { par.DbType = DbType.Boolean; } else if (parameterValue is Double) //小数 { par.DbType = DbType.Single; } else if (parameterValue is Single) { par.DbType = DbType.Single; } else if (parameterValue is Byte[]) //SQL Server 里面的Image类型 { ((System.Data.SqlClient.SqlParameter)par).SqlDbType = SqlDbType.Image; } else { par.DbType = DbType.String; //不在上面的判断范围内的,都定义成string的类型 } par.Value = parameterValue; //添加存储过程的参数 _dal.Command.Parameters.Add(par); }