Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        ///// <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);
        }