コード例 #1
1
ファイル: HNKSqlCommandHelper.cs プロジェクト: hiroakit/blog
        /// <summary>
        /// SQLのパラメータを追加します。サニタイジング(SQLインジェクション対策)をします
        /// </summary>
        /// <param name="cmd"></param>
        /// <param name="direction"></param>
        /// <param name="paramName"></param>
        /// <param name="type"></param>
        /// <param name="value">値がnullの場合はDBNull.Valueを挿入します</param>
        public static void AddSqlParameter(SqlCommand cmd, ParameterDirection direction, string paramName, SqlDbType type, Object value)
        {
            if (cmd == null)
            {
                return;
            }

            if (string.IsNullOrEmpty(paramName) || string.IsNullOrWhiteSpace(paramName))
            {
                return;
            }

            if (value == null)
            {
                value = DBNull.Value;
            }

            SqlParameter param = cmd.CreateParameter();
            param.ParameterName = paramName;
            param.SqlDbType = type;
            param.Direction = direction;
            param.Value = value;

            cmd.Parameters.Add(param);
        }
コード例 #2
0
ファイル: MySqlParameter.cs プロジェクト: GodLesZ/svn-dump
		public MySqlParameter(string parameterName, GodLesZ.Library.MySql.Data.MySqlClient.MySqlDbType dbType, int size, string sourceColumn)
			: this(parameterName, dbType) {
			this.size = size;
			this.direction = ParameterDirection.Input;
			this.sourceColumn = sourceColumn;
			this.sourceVersion = DataRowVersion.Current;
		}
コード例 #3
0
ファイル: Parameter.cs プロジェクト: SoMeTech/SoMeRegulatory
 public Parameter(string parameterName, object Value, MyDataType dbType, ParameterDirection paramDirection)
 {
     this.m_name = parameterName;
     this.m_dbType = dbType;
     this.m_value = Value;
     this.m_direction = paramDirection;
 }
コード例 #4
0
ファイル: SQLiteHelper.cs プロジェクト: xlgwr/RFID
 public Parameters(string Name, object Value,DbType dbType)
 {
     ParamName = Name;
     ParamValue = Value;
     ParamDbType = dbType;
     ParamDirection = ParameterDirection.Input;
 }
コード例 #5
0
ファイル: MySqlParameter.cs プロジェクト: GodLesZ/svn-dump
		internal MySqlParameter(string name, GodLesZ.Library.MySql.Data.MySqlClient.MySqlDbType type, ParameterDirection dir, string col, DataRowVersion ver, object val)
			: this(name, type) {
			this.direction = dir;
			this.sourceColumn = col;
			this.sourceVersion = ver;
			this.Value = val;
		}
コード例 #6
0
ファイル: DbMethodArg.cs プロジェクト: neilrees/sql.native
 public DbMethodArg(string name, Type type, object value, ParameterDirection direction = ParameterDirection.Input)
 {
     Name = name;
     Type = type;
     Value = value;
     Direction = direction;
 }
コード例 #7
0
        public override void Add(string name, object value = null, DbGenericType? dbType = null, ParameterDirection? direction = null, int? size = null)
        {
            if (value is bool)
                value = (bool)value ? 1 : 0; //Oracle doesn't like BOOL.

            base.Add(name, value, dbType, direction, size);
        }
コード例 #8
0
ファイル: SQLiteHelper.cs プロジェクト: xlgwr/RFID
 public Parameters(string Name, object Value, ParameterDirection Direction)
 {
     ParamName = Name;
     ParamValue = Value;
     ParamDbType = DbType.Object;
     ParamDirection = Direction;
 }
コード例 #9
0
		public DbParameter CreateParameter(Type connectionType, string sourceColumn, ParameterDirection parameterDirection, DbType parameterDbType, int parameterSize, byte parameterPrecision, byte parameterScale, bool parameterNullable, string parameterName, object parameterValue)
		{
			DbParameter dbParameter;

			if ((object)connectionType == null)
				throw new ArgumentNullException(nameof(connectionType));

			using (DbConnection dbConnection = (DbConnection)Activator.CreateInstance(connectionType))
			{
				using (DbCommand dbCommand = dbConnection.CreateCommand())
					dbParameter = dbCommand.CreateParameter();

				dbParameter.ParameterName = parameterName;
				dbParameter.Size = parameterSize;
				dbParameter.Value = parameterValue;
				dbParameter.Direction = parameterDirection;
				dbParameter.DbType = parameterDbType;
				this.ReflectionFascade.SetLogicalPropertyValue(dbParameter, "IsNullable", parameterNullable, true, false);
				dbParameter.Precision = parameterPrecision;
				dbParameter.Scale = parameterScale;
				dbParameter.SourceColumn = sourceColumn;

				return dbParameter;
			}
		}
コード例 #10
0
 public DbParameterHelper(DbType type, string name, object value, ParameterDirection direction)
 {
     DbType = type;
     Name = name;
     Value = value;
     Direction = direction;
 }
コード例 #11
0
        /// <summary>
        /// ref�ν� SqlParameter[]�� �޾Ƽ� ���ο� SqlParameter �� ���� Array�� �߰��Ѵ�.
        /// </summary>
        /// <param name="paramArray">������ SqlParameter[]</param>
        /// <param name="parameterName">���Ӱ� �����ϰ��� �ϴ� SqlParamter �� ����� �̸�</param>
        /// <param name="paramValue">���Ӱ� �����ϰ��� �ϴ� SqlParamter �� ����� ��</param>
        /// <param name="direction">SqlParameter�� ��� �Ӽ�����</param>
        public static void Add( ref SqlParameter[] paramArray, string parameterName, object paramValue, ParameterDirection direction  )
        {
            SqlParameter parameter = new SqlParameter(parameterName, paramValue);
             parameter.Direction = direction;

             Add(ref paramArray, parameter);
        }
コード例 #12
0
ファイル: Database.cs プロジェクト: yuzhaocai/stonefw
        public virtual DbParameter AddParameter(DbCommand dm, string name, DbType dbType, int size,
            ParameterDirection direction, bool nullable, byte precision, byte scale, string sourceColumn,
            DataRowVersion sourceVersion, object value)
        {
            ////if (dbType == DbType.String)
            ////    throw new Exception("请不要使用DbType.String进行数据库查询!");

            if (CheckInjectAttackForSp(dm, value))
                throw new Exception("输入的部分内容可能对系统稳定性造成影响,操作已停止![" + value + "]");

            DbParameter param = this.ProviderFactory.CreateParameter();
            if (param != null)
            {
                param.ParameterName = name;
                param.DbType = dbType;
                param.Size = size;
                param.Value = value ?? DBNull.Value;
                param.Direction = direction;
                param.IsNullable = nullable;
                param.SourceColumn = sourceColumn;
                param.SourceVersion = sourceVersion;
                dm.Parameters.Add(param);
            }
            return param;
        }
コード例 #13
0
		public IDbDataParameter Add(string paramName, Enum paramType, int paramSize, ParameterDirection paramDirection,  byte precision, byte scale, string sourceColumn, object paramValue) 
		{
			
			IDbDataParameter param = _command.CreateParameter();

			param.ParameterName = paramName;	

			if(paramType is DbType) 
			{
				param.DbType = (DbType)paramType;
			}
			
			param.Direction = paramDirection;

			if(sourceColumn != null && sourceColumn != string.Empty)
				param.SourceColumn = sourceColumn;


			if(paramSize > 0)
				param.Size = paramSize;
			if(precision > 0)
				param.Precision = precision;
			if(scale > 0)
				param.Scale = scale;

			
			if(paramValue != null && param.Value != DBNull.Value) 					
				param.Value	= paramValue;

			_parameters.Add(param);			
			

			return param;
		}
コード例 #14
0
ファイル: SqlParam.cs プロジェクト: girmateshe/OAuth
 public SqlParam(string paramName, object paramValue, ParameterDirection paramDirection, SqlDbType type)
 {
     Name = paramName;
     Direction = paramDirection;
     Value = paramValue;
     Type = type;
 }
コード例 #15
0
ファイル: DB2Parameter.cs プロジェクト: KonajuGames/SharpLang
		public DB2Parameter(string name, DB2Type type)
		{
			direction = ParameterDirection.Input;
			sourceVersion = DataRowVersion.Current;
			this.ParameterName = name;
			this.DB2Type = type;
		} 
コード例 #16
0
ファイル: Parameter.cs プロジェクト: xiaolin8/AMS
 public Parameter(string sKey, object oValue, ParameterDirection oDirection, DbType oDbType = DbType.String)
 {
     this._Key = sKey;
     this._Value = oValue;
     this._Direction = oDirection;
     this._DbType = oDbType;
 }
コード例 #17
0
ファイル: DB2Parameter.cs プロジェクト: KonajuGames/SharpLang
		public DB2Parameter(string parameterName, object value)
		{
			direction = ParameterDirection.Input;
			sourceVersion = DataRowVersion.Current;
			this.ParameterName = parameterName;
			this.Value = value;
		}
コード例 #18
0
 public static MySqlParameter CreateParameter(ParameterDirection direction, string paramName, MySqlDbType dbtype, int size, object value)
 {
     MySqlParameter param = new MySqlParameter(paramName, dbtype, size);
     param.Value = value;
     param.Direction = direction;
     return param;
 }
コード例 #19
0
 public ProcedureParameter(string name, ParameterType type, ParameterDirection direction, object value)
 {
     Name = name;
     Type = type;
     Direction = direction;
     Value = value;
 }
コード例 #20
0
		/// <summary>
		/// Create a new data parameter from the data source.
		/// </summary>
		/// <param name="dbConnection"> The database connection. </param>
		/// <param name="dbTransaction"> An optional local database transaction. </param>
		/// <param name="sourceColumn"> Specifies the source column. </param>
		/// <param name="parameterDirection"> Specifies the parameter direction. </param>
		/// <param name="parameterDbType"> Specifies the parameter provider-(in)dependent type. </param>
		/// <param name="parameterSize"> Specifies the parameter size. </param>
		/// <param name="parameterPrecision"> Specifies the parameter precision. </param>
		/// <param name="parameterScale"> Specifies the parameter scale. </param>
		/// <param name="parameterNullable"> Specifies the parameter nullable-ness. </param>
		/// <param name="parameterName"> Specifies the parameter name. </param>
		/// <param name="parameterValue"> Specifies the parameter value. </param>
		/// <returns> The data parameter with the specified properties set. </returns>
		public DbParameter CreateParameter(DbConnection dbConnection, DbTransaction dbTransaction, string sourceColumn, ParameterDirection parameterDirection, DbType parameterDbType, int parameterSize, byte parameterPrecision, byte parameterScale, bool parameterNullable, string parameterName, object parameterValue)
		{
			DbParameter dbParameter;

			OnlyWhen._PROFILE_ThenPrint(string.Format("{0}::CreateParameter(...): enter", typeof(AdoNetStreamingFascade).Name));

			if ((object)dbConnection == null)
				throw new ArgumentNullException(nameof(dbConnection));

			using (DbCommand dbCommand = dbConnection.CreateCommand())
				dbParameter = dbCommand.CreateParameter();

			dbParameter.ParameterName = parameterName;
			dbParameter.Size = parameterSize;
			dbParameter.Value = parameterValue;
			dbParameter.Direction = parameterDirection;
			dbParameter.DbType = parameterDbType;
			this.ReflectionFascade.SetLogicalPropertyValue(dbParameter, "IsNullable", parameterNullable, true, false);
			dbParameter.Precision = parameterPrecision;
			dbParameter.Scale = parameterScale;
			dbParameter.SourceColumn = sourceColumn;

			OnlyWhen._PROFILE_ThenPrint(string.Format("{0}::CreateParameter(...): return parameter", typeof(AdoNetStreamingFascade).Name));

			return dbParameter;
		}
コード例 #21
0
ファイル: DBParameter.cs プロジェクト: sergiokml/DALC4NET
 /// <summary>
 /// Creates a parameter with the name, value, data type and direction specified. 
 /// </summary>
 /// <param name="name">Parameter name</param>
 /// <param name="value">Value associated with the parameter</param>
 /// <param name="dbType">Data type</param>
 /// <param name="paramDirection">Parameter direction</param>
 public DBParameter(string name, object value, DbType dbType, ParameterDirection paramDirection)
 {
     _name = name;
     _value = value;
     _type = dbType;
     _paramDirection = paramDirection;
 }
コード例 #22
0
 public RoutineParameter(string name, SqlType type, ParameterDirection direction, ParameterAttributes attributes)
 {
     Attributes = attributes;
     Direction = direction;
     Type = type;
     Name = name;
 }
コード例 #23
0
ファイル: SqlParameterhelper.cs プロジェクト: tomochandv/Test
 /// <summary>
 /// 매개 변수를 사용하여 <c>SqlParameter</c>클래스의 새 인스턴스를 반환합니다.
 /// </summary>
 /// <param name="parameterName">매핑할 매개 변수의 이름</param>
 /// <param name="dbType"><c>SqlDbType</c>값 중 하나</param>
 /// <param name="size">매개 변수의 길이</param>
 /// <param name="direction"><c>ParameterDirection</c>값 중 하나</param>
 /// <returns><c>SqlParameter</c>클래스의 새 인스턴스</returns>
 public static SqlParameter CreateParameter(string parameterName, SqlDbType dbType, int size, ParameterDirection direction)
 {
     SqlParameter ret = CreateParameter(parameterName, dbType);
     ret.Direction = direction;
     ret.Size = size;
     return ret;
 }
コード例 #24
0
ファイル: BaseDAO.cs プロジェクト: damthoai/tinh-viet-co
 //thoai Add sql parameter
 protected static SqlParameter AddSqlPrameter(string parameterName, SqlDbType dbType, int size, ParameterDirection direction, object value)
 {
     SqlParameter parameter = new SqlParameter(parameterName, dbType, size);
     parameter.Direction = direction;
     parameter.Value = value;
     return parameter;
 }
コード例 #25
0
ファイル: SQLParameter.cs プロジェクト: johnpipo1712/Misuka
 public static DbParameter CreateParameter(string name, DbType type, ParameterDirection direction)
 {
   SqlParameter parameter = CreateParameter(name);
   parameter.DbType = type;
   parameter.Direction = direction;
   return parameter;
 }
コード例 #26
0
        public static IDbCommand AddParameter(this IDbCommand command, string name, DbType type, object value, int size, ParameterDirection direction)
        {
            var parameter = command.NewParameter(name, type, direction, value, size);

            command.Parameters.Add(parameter);
            return command;
        }
コード例 #27
0
 public override DbParameter DefineParameter(string parameterName, DbType dbType, ParameterDirection direction)
 {
     SqlCommand sqlCmd = (SqlCommand)base.DbCommand;
     SqlParameter sqlParm = sqlCmd.Parameters.Add(parameterName, (SqlDbType)SqlDbTypeMap[(int)dbType].ProviderDbType);
     sqlParm.Direction = direction;
     return sqlParm;
 }
コード例 #28
0
ファイル: Command.cs プロジェクト: shoy160/Shoy.Common
 public Command AddParameter(string name,object value,ParameterDirection direction)
 {
     var para = new Parameter {Name = name, Value = value, Direction = direction};
     if (_parameters.Count(t => t.Name == name) == 0)
         _parameters.Add(para);
     return this;
 }
コード例 #29
0
ファイル: MySqlParamHelper.cs プロジェクト: huangchenjun/Scut
        ///<summary>
        ///</summary>
        ///<param name="paramName"></param>
        ///<param name="dbType"></param>
        ///<param name="size"></param>
        ///<param name="direction"></param>
        ///<param name="value"></param>
        ///<returns></returns>
        ///<exception cref="ArgumentOutOfRangeException"></exception>
        public static MySqlParameter MakeParam(string paramName, MySqlDbType dbType, int size, ParameterDirection direction, object value)
        {
            MySqlParameter sqlParameter = null;
            try
            {
                paramName = paramName ?? string.Empty;

                //modify reason:验证花时比较大
                //if (!MathUtils.IsMachVarName(paramName))
                //{
                //    throw new ArgumentOutOfRangeException("paramName", "参数名格式不正确");
                //}
                if (size > 0)
                {
                    sqlParameter = new MySqlParameter(FormatParamName(paramName), dbType, size);
                }
                else
                {
                    sqlParameter = new MySqlParameter(FormatParamName(paramName), dbType);
                }
                sqlParameter.Direction = direction;
                if (direction != ParameterDirection.Output || value != null)
                {
                    sqlParameter.Value = value;
                }
            }
            catch (Exception ex)
            {
                TraceLog.WriteError("{0}", ex);
            }
            return sqlParameter;
        }
コード例 #30
0
 /// <summary>
 /// Use MySQLParameter(string parameterName, DbType type)
 /// </summary>
 /// <param name="dbType">One of the DbType values</param>
 /// <param name="parameterDirection"></param>
 public MySQLParameter(MySQLDbType dbType, ParameterDirection parameterDirection)
 {
     ParameterName = null;
     _dbType       = dbType;
     Direction     = parameterDirection;
 }
コード例 #31
0
ファイル: MySqlServer.cs プロジェクト: ndubul/Chillas
        public List <IDbDataParameter> GetProcedureParameters(IDbCommand command, string dbName, string procedureName, out List <IDbDataParameter> outParams)
        {
            outParams = new List <IDbDataParameter>();
            //Please do not use SqlCommandBuilder.DeriveParameters(command); as it does not handle CLR procedures correctly.
            string originalCommandText = command.CommandText;
            var    parameters          = new List <IDbDataParameter>();

            command.CommandType = CommandType.Text;
            command.CommandText =
                string.Format(
                    "SELECT param_list FROM mysql.proc WHERE db='{0}' AND name='{1}'",
                    dbName, procedureName);
            DataTable dataTable = FetchDataTable(command);

            foreach (DataRow row in dataTable.Rows)
            {
                if (row != null)
                {
                    var bytes = row[0] as byte[];
                    if (bytes != null)
                    {
                        var parameterName = Encoding.Default.GetString(bytes);
                        parameterName = Regex.Replace(parameterName, @"(\()([0-z,])+(\))", "");
                        var parameternames = parameterName.Split(',');
                        foreach (var parameter in parameternames)
                        {
                            bool isout = false;
                            const ParameterDirection direction = ParameterDirection.Input;
                            if (parameter.Contains("OUT "))
                            {
                                isout = true;
                            }
                            if (parameter.Contains("INOUT"))
                            {
                                isout = false;
                            }
                            var parameterx = parameter.Replace("IN ", "").Replace("OUT ", "");
                            if (!String.IsNullOrEmpty(parameterName))
                            {
                                var split = parameterx.Split(' ');

                                MySqlDbType sqlType;
                                Enum.TryParse(split.Where(a => a.Trim().Length > 0).ToArray()[1], true, out sqlType);

                                var sqlParameter = new MySqlParameter(split.First(a => a.Trim().Length > 0), sqlType)
                                {
                                    Direction = direction
                                };
                                if (!isout)
                                {
                                    command.Parameters.Add(sqlParameter);
                                    parameters.Add(sqlParameter);
                                }
                                else
                                {
                                    sqlParameter.Direction = ParameterDirection.Output;
                                    outParams.Add(sqlParameter);
                                    sqlParameter.Value = "@a";
                                    command.Parameters.Add(sqlParameter);
                                }
                                if (parameterName.ToLower() == "@return_value")
                                {
                                }
                            }
                        }
                    }
                }
            }
            command.CommandText = originalCommandText;
            return(parameters);
        }
コード例 #32
0
 protected DirectionAttribute(ParameterDirection direction)
 {
     Direction = direction;
 }
コード例 #33
0
 public OdbcParameter(string parameterName, System.Data.Odbc.OdbcType odbcType, int size, ParameterDirection parameterDirection, byte precision, byte scale, string sourceColumn, DataRowVersion sourceVersion, bool sourceColumnNullMapping, object value) : this()
 {
     this.ParameterName           = parameterName;
     this.OdbcType                = odbcType;
     this.Size                    = size;
     this.Direction               = parameterDirection;
     this.PrecisionInternal       = precision;
     this.ScaleInternal           = scale;
     this.SourceColumn            = sourceColumn;
     this.SourceVersion           = sourceVersion;
     this.SourceColumnNullMapping = sourceColumnNullMapping;
     this.Value                   = value;
 }
コード例 #34
0
ファイル: MySqlProvider.cs プロジェクト: windygu/Everything
        public IDbDataParameter MakeParam(string parameterName, object parameterValue, DbType dbType, int parameterSize, ParameterDirection parameterDirection)
        {
            MySqlParameter parameter;

            if (parameterSize > 0)
            {
                parameter = new MySqlParameter(parameterName, (MySqlDbType)dbType, parameterSize);
            }
            else
            {
                parameter = new MySqlParameter(parameterName, (MySqlDbType)dbType);
            }
            parameter.Direction = parameterDirection;
            if ((parameterDirection != ParameterDirection.Output) || (parameterValue != null))
            {
                parameter.Value = parameterValue;
            }
            return(parameter);
        }
コード例 #35
0
 public OleDbParameter(string parameterName, System.Data.OleDb.OleDbType dbType, int size, ParameterDirection direction, bool isNullable, byte precision, byte scale, string srcColumn, DataRowVersion srcVersion, object value) : this()
 {
     this.ParameterName     = parameterName;
     this.OleDbType         = dbType;
     this.Size              = size;
     this.Direction         = direction;
     this.IsNullable        = isNullable;
     this.PrecisionInternal = precision;
     this.ScaleInternal     = scale;
     this.SourceColumn      = srcColumn;
     this.SourceVersion     = srcVersion;
     this.Value             = value;
 }
コード例 #36
0
 private static int GetBindFlags(ParameterDirection direction)
 {
     return((int)(ParameterDirection.InputOutput & direction));
 }
コード例 #37
0
        internal bool BindParameter(int index, Bindings bindings)
        {
            int          size;
            int          ptrSize;
            byte         precisionInternal;
            byte         scaleInternal;
            object       obj2     = this.Value;
            NativeDBType bindType = this.GetBindType(obj2);

            if (bindType.enumOleDbType == System.Data.OleDb.OleDbType.Empty)
            {
                throw ODB.UninitializedParameters(index, bindType.enumOleDbType);
            }
            this._coerceMetaType = bindType;
            obj2 = CoerceValue(obj2, bindType);
            this.CoercedValue = obj2;
            ParameterDirection direction = this.Direction;

            if (this.ShouldSerializePrecision())
            {
                precisionInternal = this.PrecisionInternal;
            }
            else
            {
                precisionInternal = this.ValuePrecision(obj2);
            }
            if (precisionInternal == 0)
            {
                precisionInternal = bindType.maxpre;
            }
            if (this.ShouldSerializeScale())
            {
                scaleInternal = this.ScaleInternal;
            }
            else
            {
                scaleInternal = this.ValueScale(obj2);
            }
            int wType = bindType.wType;

            if (bindType.islong)
            {
                ptrSize = ADP.PtrSize;
                if (this.ShouldSerializeSize())
                {
                    size = this.Size;
                }
                else if (0x81 == bindType.dbType)
                {
                    size = 0x7fffffff;
                }
                else if (130 == bindType.dbType)
                {
                    size = 0x3fffffff;
                }
                else
                {
                    size = 0x7fffffff;
                }
                wType |= 0x4000;
            }
            else if (bindType.IsVariableLength)
            {
                bool flag;
                if (!this.ShouldSerializeSize() && ADP.IsDirection(this, ParameterDirection.Output))
                {
                    throw ADP.UninitializedParameterSize(index, this._coerceMetaType.dataType);
                }
                if (this.ShouldSerializeSize())
                {
                    size = this.Size;
                    flag = false;
                }
                else
                {
                    size = this.ValueSize(obj2);
                    flag = true;
                }
                if (0 >= size)
                {
                    if (size != 0)
                    {
                        if (-1 != size)
                        {
                            throw ADP.InvalidSizeValue(size);
                        }
                        ptrSize = ADP.PtrSize;
                        wType  |= 0x4000;
                    }
                    else if (130 == wType)
                    {
                        ptrSize = 2;
                    }
                    else
                    {
                        ptrSize = 0;
                    }
                }
                else
                {
                    if (130 == bindType.wType)
                    {
                        ptrSize = (Math.Min(size, 0x3ffffffe) * 2) + 2;
                    }
                    else
                    {
                        ptrSize = size;
                    }
                    if (flag && (0x81 == bindType.dbType))
                    {
                        size = Math.Min(size, 0x3ffffffe) * 2;
                    }
                    if (0x2000 < ptrSize)
                    {
                        ptrSize = ADP.PtrSize;
                        wType  |= 0x4000;
                    }
                }
            }
            else
            {
                ptrSize = bindType.fixlen;
                size    = ptrSize;
            }
            bindings.CurrentIndex   = index;
            bindings.DataSourceType = bindType.dbString.DangerousGetHandle();
            bindings.Name           = ADP.PtrZero;
            bindings.ParamSize      = new IntPtr(size);
            bindings.Flags          = GetBindFlags(direction);
            bindings.Ordinal        = (IntPtr)(index + 1);
            bindings.Part           = bindType.dbPart;
            bindings.ParamIO        = GetBindDirection(direction);
            bindings.Precision      = precisionInternal;
            bindings.Scale          = scaleInternal;
            bindings.DbType         = wType;
            bindings.MaxLen         = ptrSize;
            if (Bid.AdvancedOn)
            {
                Bid.Trace("<oledb.struct.tagDBPARAMBINDINFO|INFO|ADV> index=%d, parameterName='%ls'\n", index, this.ParameterName);
                Bid.Trace("<oledb.struct.tagDBBINDING|INFO|ADV>\n");
            }
            return(this.IsParameterComputed());
        }
コード例 #38
0
        //公有方法,实例化一个用于调用存储过程的参数
        //输入:
        //      ParamName - 参数名称
        //      DbType		- 参数类型
        //      Size			- 参数大小
        //			Direction - 传递方向
        //			Value			- 值
        public IDataParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
        {
            SqlParameter Param;

            if (Size > 0)
            {
                Param = new SqlParameter(ParamName, DbType, Size);
            }
            else
            {
                Param = new SqlParameter(ParamName, DbType);
            }

            Param.Direction = Direction;

            if (Value != null)
            {
                Param.Value = Value;
            }

            return(Param);
        }
コード例 #39
0
        //#region funciones publicas
        ///// <summary>
        ///// Inserta un ConsumoIAPFact
        ///// </summary>
        //internal int Insert(Models.ConsumoIAPFact oConsumoIAPFact)
        //{
        //    try
        //    {
        //        SqlParameter[] dbparams = new SqlParameter[19] {
        //            Param(enumDBFields.t301_idproyecto, oConsumoIAPFact.t301_idproyecto),
        //            Param(enumDBFields.t305_seudonimo, oConsumoIAPFact.t305_seudonimo),
        //            Param(enumDBFields.t332_idtarea, oConsumoIAPFact.t332_idtarea),
        //            Param(enumDBFields.t332_destarea, oConsumoIAPFact.t332_destarea),
        //            Param(enumDBFields.t332_facturable, oConsumoIAPFact.t332_facturable),
        //            Param(enumDBFields.t332_orden, oConsumoIAPFact.t332_orden),
        //            Param(enumDBFields.t331_despt, oConsumoIAPFact.t331_despt),
        //            Param(enumDBFields.t335_desactividad, oConsumoIAPFact.t335_desactividad),
        //            Param(enumDBFields.t334_desfase, oConsumoIAPFact.t334_desfase),
        //            Param(enumDBFields.t332_etpl, oConsumoIAPFact.t332_etpl),
        //            Param(enumDBFields.t336_etp, oConsumoIAPFact.t336_etp),
        //            Param(enumDBFields.horas_planificadas_periodo, oConsumoIAPFact.horas_planificadas_periodo),
        //            Param(enumDBFields.horas_tecnico_periodo, oConsumoIAPFact.horas_tecnico_periodo),
        //            Param(enumDBFields.horas_otros_periodo, oConsumoIAPFact.horas_otros_periodo),
        //            Param(enumDBFields.horas_total_periodo, oConsumoIAPFact.horas_total_periodo),
        //            Param(enumDBFields.horas_planificadas_finperiodo, oConsumoIAPFact.horas_planificadas_finperiodo),
        //            Param(enumDBFields.horas_tecnico_finperiodo, oConsumoIAPFact.horas_tecnico_finperiodo),
        //            Param(enumDBFields.horas_otros_finperiodo, oConsumoIAPFact.horas_otros_finperiodo),
        //            Param(enumDBFields.horas_total_finperiodo, oConsumoIAPFact.horas_total_finperiodo)
        //        };

        //        return (int)cDblib.Execute("_ConsumoIAPFact_INS", dbparams);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //}

        ///// <summary>
        ///// Obtiene un ConsumoIAPFact a partir del id
        ///// </summary>
        //internal Models.ConsumoIAPFact Select()
        //{
        //    Models.ConsumoIAPFact oConsumoIAPFact = null;
        //    IDataReader dr = null;

        //    try
        //    {


        //        dr = cDblib.DataReader("_ConsumoIAPFact_SEL", dbparams);
        //        if (dr.Read())
        //        {
        //            oConsumoIAPFact = new Models.ConsumoIAPFact();
        //            oConsumoIAPFact.t301_idproyecto=Convert.ToInt32(dr["t301_idproyecto"]);
        //            oConsumoIAPFact.t305_seudonimo=Convert.ToString(dr["t305_seudonimo"]);
        //            oConsumoIAPFact.t332_idtarea=Convert.ToInt32(dr["t332_idtarea"]);
        //            oConsumoIAPFact.t332_destarea=Convert.ToString(dr["t332_destarea"]);
        //            oConsumoIAPFact.t332_facturable=Convert.ToBoolean(dr["t332_facturable"]);
        //            oConsumoIAPFact.t332_orden=Convert.ToInt32(dr["t332_orden"]);
        //            oConsumoIAPFact.t331_despt=Convert.ToString(dr["t331_despt"]);
        //            oConsumoIAPFact.t335_desactividad=Convert.ToString(dr["t335_desactividad"]);
        //            oConsumoIAPFact.t334_desfase=Convert.ToString(dr["t334_desfase"]);
        //            oConsumoIAPFact.t332_etpl=Convert.ToDouble(dr["t332_etpl"]);
        //            oConsumoIAPFact.t336_etp=Convert.ToDouble(dr["t336_etp"]);
        //            oConsumoIAPFact.horas_planificadas_periodo=Convert.ToDouble(dr["horas_planificadas_periodo"]);
        //            oConsumoIAPFact.horas_tecnico_periodo=Convert.ToDouble(dr["horas_tecnico_periodo"]);
        //            oConsumoIAPFact.horas_otros_periodo=Convert.ToDouble(dr["horas_otros_periodo"]);
        //            oConsumoIAPFact.horas_total_periodo=Convert.ToDouble(dr["horas_total_periodo"]);
        //            oConsumoIAPFact.horas_planificadas_finperiodo=Convert.ToDouble(dr["horas_planificadas_finperiodo"]);
        //            oConsumoIAPFact.horas_tecnico_finperiodo=Convert.ToDouble(dr["horas_tecnico_finperiodo"]);
        //            oConsumoIAPFact.horas_otros_finperiodo=Convert.ToDouble(dr["horas_otros_finperiodo"]);
        //            oConsumoIAPFact.horas_total_finperiodo=Convert.ToDouble(dr["horas_total_finperiodo"]);

        //        }
        //        return oConsumoIAPFact;

        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //    finally
        //    {
        //        if (dr != null)
        //        {
        //            if (!dr.IsClosed) dr.Close();
        //            dr.Dispose();
        //        }
        //    }
        //}

        ///// <summary>
        ///// Actualiza un ConsumoIAPFact a partir del id
        ///// </summary>
        //internal int Update(Models.ConsumoIAPFact oConsumoIAPFact)
        //{
        //    try
        //    {
        //        SqlParameter[] dbparams = new SqlParameter[19] {
        //            Param(enumDBFields.t301_idproyecto, oConsumoIAPFact.t301_idproyecto),
        //            Param(enumDBFields.t305_seudonimo, oConsumoIAPFact.t305_seudonimo),
        //            Param(enumDBFields.t332_idtarea, oConsumoIAPFact.t332_idtarea),
        //            Param(enumDBFields.t332_destarea, oConsumoIAPFact.t332_destarea),
        //            Param(enumDBFields.t332_facturable, oConsumoIAPFact.t332_facturable),
        //            Param(enumDBFields.t332_orden, oConsumoIAPFact.t332_orden),
        //            Param(enumDBFields.t331_despt, oConsumoIAPFact.t331_despt),
        //            Param(enumDBFields.t335_desactividad, oConsumoIAPFact.t335_desactividad),
        //            Param(enumDBFields.t334_desfase, oConsumoIAPFact.t334_desfase),
        //            Param(enumDBFields.t332_etpl, oConsumoIAPFact.t332_etpl),
        //            Param(enumDBFields.t336_etp, oConsumoIAPFact.t336_etp),
        //            Param(enumDBFields.horas_planificadas_periodo, oConsumoIAPFact.horas_planificadas_periodo),
        //            Param(enumDBFields.horas_tecnico_periodo, oConsumoIAPFact.horas_tecnico_periodo),
        //            Param(enumDBFields.horas_otros_periodo, oConsumoIAPFact.horas_otros_periodo),
        //            Param(enumDBFields.horas_total_periodo, oConsumoIAPFact.horas_total_periodo),
        //            Param(enumDBFields.horas_planificadas_finperiodo, oConsumoIAPFact.horas_planificadas_finperiodo),
        //            Param(enumDBFields.horas_tecnico_finperiodo, oConsumoIAPFact.horas_tecnico_finperiodo),
        //            Param(enumDBFields.horas_otros_finperiodo, oConsumoIAPFact.horas_otros_finperiodo),
        //            Param(enumDBFields.horas_total_finperiodo, oConsumoIAPFact.horas_total_finperiodo)
        //        };

        //        return (int)cDblib.Execute("_ConsumoIAPFact_UPD", dbparams);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //}

        ///// <summary>
        ///// Elimina un ConsumoIAPFact a partir del id
        ///// </summary>
        //internal int Delete()
        //{
        //    try
        //    {


        //        return (int)cDblib.Execute("_ConsumoIAPFact_DEL", dbparams);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //}

        ///// <summary>
        ///// Obtiene todos los ConsumoIAPFact
        ///// </summary>
        //internal List<Models.ConsumoIAPFact> Catalogo(Models.ConsumoIAPFact oConsumoIAPFactFilter)
        //{
        //    Models.ConsumoIAPFact oConsumoIAPFact = null;
        //    List<Models.ConsumoIAPFact> lst = new List<Models.ConsumoIAPFact>();
        //    IDataReader dr = null;

        //    try
        //    {
        //        SqlParameter[] dbparams = new SqlParameter[19] {
        //            Param(enumDBFields.t301_idproyecto, oTEMP_ConsumoIAPFactFilter.t301_idproyecto),
        //            Param(enumDBFields.t305_seudonimo, oTEMP_ConsumoIAPFactFilter.t305_seudonimo),
        //            Param(enumDBFields.t332_idtarea, oTEMP_ConsumoIAPFactFilter.t332_idtarea),
        //            Param(enumDBFields.t332_destarea, oTEMP_ConsumoIAPFactFilter.t332_destarea),
        //            Param(enumDBFields.t332_facturable, oTEMP_ConsumoIAPFactFilter.t332_facturable),
        //            Param(enumDBFields.t332_orden, oTEMP_ConsumoIAPFactFilter.t332_orden),
        //            Param(enumDBFields.t331_despt, oTEMP_ConsumoIAPFactFilter.t331_despt),
        //            Param(enumDBFields.t335_desactividad, oTEMP_ConsumoIAPFactFilter.t335_desactividad),
        //            Param(enumDBFields.t334_desfase, oTEMP_ConsumoIAPFactFilter.t334_desfase),
        //            Param(enumDBFields.t332_etpl, oTEMP_ConsumoIAPFactFilter.t332_etpl),
        //            Param(enumDBFields.t336_etp, oTEMP_ConsumoIAPFactFilter.t336_etp),
        //            Param(enumDBFields.horas_planificadas_periodo, oTEMP_ConsumoIAPFactFilter.horas_planificadas_periodo),
        //            Param(enumDBFields.horas_tecnico_periodo, oTEMP_ConsumoIAPFactFilter.horas_tecnico_periodo),
        //            Param(enumDBFields.horas_otros_periodo, oTEMP_ConsumoIAPFactFilter.horas_otros_periodo),
        //            Param(enumDBFields.horas_total_periodo, oTEMP_ConsumoIAPFactFilter.horas_total_periodo),
        //            Param(enumDBFields.horas_planificadas_finperiodo, oTEMP_ConsumoIAPFactFilter.horas_planificadas_finperiodo),
        //            Param(enumDBFields.horas_tecnico_finperiodo, oTEMP_ConsumoIAPFactFilter.horas_tecnico_finperiodo),
        //            Param(enumDBFields.horas_otros_finperiodo, oTEMP_ConsumoIAPFactFilter.horas_otros_finperiodo),
        //            Param(enumDBFields.horas_total_finperiodo, oTEMP_ConsumoIAPFactFilter.horas_total_finperiodo)
        //        };

        //        dr = cDblib.DataReader("_ConsumoIAPFact_CAT", dbparams);
        //        while (dr.Read())
        //        {
        //            oConsumoIAPFact = new Models.ConsumoIAPFact();
        //            oConsumoIAPFact.t301_idproyecto=Convert.ToInt32(dr["t301_idproyecto"]);
        //            oConsumoIAPFact.t305_seudonimo=Convert.ToString(dr["t305_seudonimo"]);
        //            oConsumoIAPFact.t332_idtarea=Convert.ToInt32(dr["t332_idtarea"]);
        //            oConsumoIAPFact.t332_destarea=Convert.ToString(dr["t332_destarea"]);
        //            oConsumoIAPFact.t332_facturable=Convert.ToBoolean(dr["t332_facturable"]);
        //            oConsumoIAPFact.t332_orden=Convert.ToInt32(dr["t332_orden"]);
        //            oConsumoIAPFact.t331_despt=Convert.ToString(dr["t331_despt"]);
        //            oConsumoIAPFact.t335_desactividad=Convert.ToString(dr["t335_desactividad"]);
        //            oConsumoIAPFact.t334_desfase=Convert.ToString(dr["t334_desfase"]);
        //            oConsumoIAPFact.t332_etpl=Convert.ToDouble(dr["t332_etpl"]);
        //            oConsumoIAPFact.t336_etp=Convert.ToDouble(dr["t336_etp"]);
        //            oConsumoIAPFact.horas_planificadas_periodo=Convert.ToDouble(dr["horas_planificadas_periodo"]);
        //            oConsumoIAPFact.horas_tecnico_periodo=Convert.ToDouble(dr["horas_tecnico_periodo"]);
        //            oConsumoIAPFact.horas_otros_periodo=Convert.ToDouble(dr["horas_otros_periodo"]);
        //            oConsumoIAPFact.horas_total_periodo=Convert.ToDouble(dr["horas_total_periodo"]);
        //            oConsumoIAPFact.horas_planificadas_finperiodo=Convert.ToDouble(dr["horas_planificadas_finperiodo"]);
        //            oConsumoIAPFact.horas_tecnico_finperiodo=Convert.ToDouble(dr["horas_tecnico_finperiodo"]);
        //            oConsumoIAPFact.horas_otros_finperiodo=Convert.ToDouble(dr["horas_otros_finperiodo"]);
        //            oConsumoIAPFact.horas_total_finperiodo=Convert.ToDouble(dr["horas_total_finperiodo"]);

        //            lst.Add(oConsumoIAPFact);

        //        }
        //        return lst;

        //    }
        //    catch (Exception ex)
        //    {
        //        throw ex;
        //    }
        //    finally
        //    {
        //        if (dr != null)
        //        {
        //            if (!dr.IsClosed) dr.Close();
        //            dr.Dispose();
        //        }
        //    }
        //}

        //#endregion

        #region funciones privadas
        private SqlParameter Param(enumDBFields dbField, object value)
        {
            SqlParameter       dbParam        = null;
            string             paramName      = null;
            SqlDbType          paramType      = default(SqlDbType);
            int                paramSize      = 0;
            ParameterDirection paramDirection = ParameterDirection.Input;

            switch (dbField)
            {
            case enumDBFields.t301_idproyecto:
                paramName = "@t301_idproyecto";
                paramType = SqlDbType.Int;
                paramSize = 4;
                break;

            case enumDBFields.t305_seudonimo:
                paramName = "@t305_seudonimo";
                paramType = SqlDbType.VarChar;
                paramSize = 70;
                break;

            case enumDBFields.t332_idtarea:
                paramName = "@t332_idtarea";
                paramType = SqlDbType.Int;
                paramSize = 4;
                break;

            case enumDBFields.t332_destarea:
                paramName = "@t332_destarea";
                paramType = SqlDbType.VarChar;
                paramSize = 100;
                break;

            case enumDBFields.t332_facturable:
                paramName = "@t332_facturable";
                paramType = SqlDbType.Bit;
                paramSize = 1;
                break;

            case enumDBFields.t332_orden:
                paramName = "@t332_orden";
                paramType = SqlDbType.Int;
                paramSize = 4;
                break;

            case enumDBFields.t331_despt:
                paramName = "@t331_despt";
                paramType = SqlDbType.VarChar;
                paramSize = 50;
                break;

            case enumDBFields.t335_desactividad:
                paramName = "@t335_desactividad";
                paramType = SqlDbType.VarChar;
                paramSize = 50;
                break;

            case enumDBFields.t334_desfase:
                paramName = "@t334_desfase";
                paramType = SqlDbType.VarChar;
                paramSize = 50;
                break;

            case enumDBFields.t332_etpl:
                paramName = "@t332_etpl";
                paramType = SqlDbType.Float;
                paramSize = 8;
                break;

            case enumDBFields.t336_etp:
                paramName = "@t336_etp";
                paramType = SqlDbType.Float;
                paramSize = 8;
                break;

            case enumDBFields.horas_planificadas_periodo:
                paramName = "@horas_planificadas_periodo";
                paramType = SqlDbType.Float;
                paramSize = 8;
                break;

            case enumDBFields.horas_tecnico_periodo:
                paramName = "@horas_tecnico_periodo";
                paramType = SqlDbType.Float;
                paramSize = 8;
                break;

            case enumDBFields.horas_otros_periodo:
                paramName = "@horas_otros_periodo";
                paramType = SqlDbType.Float;
                paramSize = 8;
                break;

            case enumDBFields.horas_total_periodo:
                paramName = "@horas_total_periodo";
                paramType = SqlDbType.Float;
                paramSize = 8;
                break;

            case enumDBFields.horas_planificadas_finperiodo:
                paramName = "@horas_planificadas_finperiodo";
                paramType = SqlDbType.Float;
                paramSize = 8;
                break;

            case enumDBFields.horas_tecnico_finperiodo:
                paramName = "@horas_tecnico_finperiodo";
                paramType = SqlDbType.Float;
                paramSize = 8;
                break;

            case enumDBFields.horas_otros_finperiodo:
                paramName = "@horas_otros_finperiodo";
                paramType = SqlDbType.Float;
                paramSize = 8;
                break;

            case enumDBFields.horas_total_finperiodo:
                paramName = "@horas_total_finperiodo";
                paramType = SqlDbType.Float;
                paramSize = 8;
                break;
            }


            dbParam           = cDblib.dbParameter(paramName, paramType, paramSize);
            dbParam.Direction = paramDirection;
            if (paramDirection == ParameterDirection.Input | paramDirection == ParameterDirection.InputOutput)
            {
                dbParam.Value = value;
            }

            return(dbParam);
        }
コード例 #40
0
 static internal bool IsDirection(IDataParameter value, ParameterDirection condition)
 {
     return(condition == (condition & value.Direction));
 }
コード例 #41
0
 static internal bool IsDirection(ParameterDirection value, ParameterDirection condition)
 {
     return(condition == (condition & value));
 }
コード例 #42
0
ファイル: DatabaseParameters.cs プロジェクト: keithlemon/Beef
        /// <summary>
        /// Adds a named parameter, specified <see cref="SqlDbType"/> and value.
        /// </summary>
        /// <param name="name">The parameter name.</param>
        /// <param name="value">The parameter value.</param>
        /// <param name="sqlDbType">The parameter <see cref="SqlDbType"/>.</param>
        /// <param name="direction">The <see cref="ParameterDirection"/> (default to <see cref="ParameterDirection.Input"/>).</param>
        /// <returns>A <see cref="DbParameter"/>.</returns>
        /// <remarks>This specifically implies that the <see cref="System.Data.SqlClient.SqlParameter"/> is being used; if not then an exception will be thrown.</remarks>
        public DbParameter AddParameter(string name, object value, SqlDbType sqlDbType, ParameterDirection direction = ParameterDirection.Input)
        {
            var p = (System.Data.SqlClient.SqlParameter)DatabaseCommand.Database.Provider.CreateParameter();

            p.ParameterName = name ?? throw new ArgumentNullException("name");
            p.SqlDbType     = sqlDbType;
            p.Direction     = direction;
            p.Value         = value;

            DatabaseCommand.DbCommand.Parameters.Add(p);
            return(p);
        }
コード例 #43
0
 static internal Exception InvalidParameterDirection(ParameterDirection value)
 {
     return(Argument(Res.GetString(Res.ADP_InvalidParameterDirection, ((int)value).ToString(CultureInfo.CurrentCulture))));
 }
コード例 #44
0
 public ColumnMapBuilder <TEntity> SetParamDirection(ParameterDirection direction)
 {
     AssertCurrentPropertyIsSet();
     return(SetParamDirection(_currentPropertyName, direction));
 }
コード例 #45
0
        public static void AddParameter(ref SqlCommand command, string parameterName, SqlDbType dbType, ParameterDirection direction)
        {
            SqlParameter parmStatusName = new SqlParameter(parameterName, dbType);

            parmStatusName.Direction = direction;
            command.Parameters.Add(parmStatusName);
        }
コード例 #46
0
        public static void AddParameter(ref SqlCommand command, string parameterName, ParameterDirection direction, object parameterValue)
        {
            SqlParameter parmStatusName = new SqlParameter(parameterName, parameterValue);

            parmStatusName.Direction = direction;
            command.Parameters.Add(parmStatusName);
        }
コード例 #47
0
 /// <summary>
 /// Use MySQLParameter(string parameterName, DbType type)
 /// </summary>
 /// <param name="parameterName">The name of the parameter to map.</param>
 /// <param name="dbType">One of the DbType values</param>
 /// <param name="parameterDirection"></param>
 public MySQLParameter(string parameterName, MySQLDbType dbType, ParameterDirection parameterDirection)
 {
     ParameterName = parameterName;
     _dbType       = dbType;
     Direction     = parameterDirection;
 }
コード例 #48
0
        /// <summary>
        /// 生成存储过程参数
        /// </summary>
        /// <param name="ParamName">存储过程名称</param>
        /// <param name="DbType">参数类型</param>
        /// <param name="Size">参数大小</param>
        /// <param name="Direction">参数方向</param>
        /// <param name="Value">参数值</param>
        /// <returns>新的 parameter 对象</returns>
        public static SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
        {
            SqlParameter param;

            #region

            if (Size > 0)
            {
                param = new SqlParameter(ParamName, DbType, Size);
            }
            else
            {
                param = new SqlParameter(ParamName, DbType);
            }

            param.Direction = Direction;
            if (!(Direction == ParameterDirection.Output && Value == null))
            {
                param.Value = Value;
            }

            return(param);

            #endregion
        }
コード例 #49
0
        public static void AddParameter(ref SqlCommand command, string parameterName, SqlDbType dbType, int size, ParameterDirection direction, object parameterValue)
        {
            SqlParameter parmStatusName = new SqlParameter(parameterName, dbType, size);

            parmStatusName.Value     = parameterValue;
            parmStatusName.Direction = direction;
            command.Parameters.Add(parmStatusName);
        }
コード例 #50
0
ファイル: DalBase.cs プロジェクト: xiaoyaoju/cyqdata
        public virtual bool AddParameters(string parameterName, object value, DbType dbType, int size, ParameterDirection direction)
        {
            if (DataBaseType == DataBaseType.Oracle)
            {
                parameterName = parameterName.Replace(":", "").Replace("@", "");
                if (dbType == DbType.String && size > 4000)
                {
                    AddCustomePara(parameterName, size == int.MaxValue ? ParaType.CLOB : ParaType.NCLOB, value, null);
                    return(true);
                }
            }
            else
            {
                parameterName = parameterName.Substring(0, 1) == Pre.ToString() ? parameterName : Pre + parameterName;
            }
            if (Com == null)
            {
                return(false);
            }
            if (Com.Parameters.Contains(parameterName))//已经存在,不添加
            {
                return(false);
            }
            DbParameter para = _com.CreateParameter();

            para.ParameterName = parameterName;
            para.Value         = value == null ? DBNull.Value : value;
            if (dbType == DbType.Time)// && dalType != DalType.MySql
            {
                para.DbType = DbType.String;
            }
            else
            {
                if (dbType == DbType.DateTime && value != null)
                {
                    string time = Convert.ToString(value);
                    if (DataBaseType == DataBaseType.MsSql && time == DateTime.MinValue.ToString())
                    {
                        para.Value = SqlDateTime.MinValue;
                    }
                    else if (DataBaseType == DataBaseType.MySql && (time == SqlDateTime.MinValue.ToString() || time == DateTime.MinValue.ToString()))
                    {
                        para.Value = DateTime.MinValue;
                    }
                }
                para.DbType = dbType;
            }
            if (dbType == DbType.Binary && DataBaseType == DataBaseType.MySql)//(mysql不能设定长度,否则会报索引超出了数组界限错误【已过时,旧版本的MySql.Data.dll不能指定长度】)。
            {
                if (value != null)
                {
                    byte[] bytes = value as byte[];
                    para.Size = bytes.Length;//新版本的MySql.Data.dll 修正了长度指定(不指定就没数据进去),所以又要指定长度,Shit
                }
                else
                {
                    para.Size = -1;
                }
            }
            else if (dbType != DbType.Binary && size > -1)
            {
                if (size != para.Size)
                {
                    para.Size = size;
                }
            }
            para.Direction = direction;
            if (para.DbType == DbType.String && para.Value != null)
            {
                para.Value = Convert.ToString(para.Value);
            }
            Com.Parameters.Add(para);
            return(true);
        }
コード例 #51
0
ファイル: SqlBit.cs プロジェクト: ffMathy/unQuery
 internal SqlBit(bool?value, ParameterDirection direction) :
     base(value, SqlDbType.Bit, direction)
 {
 }
コード例 #52
0
        /// <summary>
        /// 根据CommandSchema创建命令,并将Shema中的参数设置到命令
        /// </summary>
        /// <param name="cmdSchema">命令配置</param>
        /// <returns></returns>
        public DbCommand getCommand(CommandSchema cmdSchema)
        {
            if (cmdSchema == null || string.IsNullOrEmpty(cmdSchema.CommandText))
            {
                throw new XException(Lang.NoUpLoadCommand);
            }

            DbCommand cmd = dbAdmin.getSqlCommand(cmdSchema.CommandText, cmdSchema.CommandType);

            SqlParse sqlp = new SqlParse(cmdSchema.CommandText);

            string[] parameters = sqlp.GetParamNames();

            foreach (string pName in parameters)
            {
                string             fName = pName.Remove(0, 1);
                string             val   = null;
                DbType             pType = DbType.String;
                ParameterDirection pDir  = ParameterDirection.Input;

                ParameterSchema ps   = cmdSchema.QueryParams == null ? null : cmdSchema.QueryParams.FindItem(pName);
                FieldSchema     flds = schema.Fields == null ? null : schema.Fields.FindItem(fName);

                if (pName.StartsWith(XSqlBuilder.OLD_VERSION_PIX))
                {
                    flds = schema.Fields.FindItem(fName.Remove(0, XSqlBuilder.OLD_VERSION_PIX.Length));
                }

                //获取字典定义中的参数类型,参数方向默认为input
                if (flds != null)
                {
                    pType = flds.DataType;
                }

                //获取参数定义中的参数类型,及参数方向;
                if (ps != null)
                {
                    pType = ps.DataType;
                    val   = ps.DefaultValue;
                    pDir  = ps.Direction;
                }
                //if (row.ContainsKey(fName))
                //    val = row[fName];

                //if (realParams.ContainsKey(pName))
                //    val = realParams[pName];


                switch (pDir)
                {
                case ParameterDirection.Input:
                    dbAdmin.addInParameter(cmd, pName, pType, val);
                    break;

                case ParameterDirection.InputOutput:
                    break;

                case ParameterDirection.Output:
                    dbAdmin.AddOutParameter(cmd, pName, pType, int.MaxValue);
                    break;
                }
            }

            return(cmd);
        }
コード例 #53
0
        ///<summary>
        ///</summary>
        ///<param name="paramName"></param>
        ///<param name="dbType"></param>
        ///<param name="size"></param>
        ///<param name="direction"></param>
        ///<param name="value"></param>
        ///<returns></returns>
        ///<exception cref="ArgumentOutOfRangeException"></exception>
        public static MySqlParameter MakeParam(string paramName, MySqlDbType dbType, int size, ParameterDirection direction, object value)
        {
            MySqlParameter sqlParameter = null;

            try
            {
                paramName = paramName ?? string.Empty;

                //modify reason:验证花时比较大
                //if (!MathUtils.IsMachVarName(paramName))
                //{
                //    throw new ArgumentOutOfRangeException("paramName", "参数名格式不正确");
                //}
                if (size > 0)
                {
                    sqlParameter = new MySqlParameter(FormatParamName(paramName), dbType, size);
                }
                else
                {
                    sqlParameter = new MySqlParameter(FormatParamName(paramName), dbType);
                }
                sqlParameter.Direction = direction;
                if (direction != ParameterDirection.Output || value != null)
                {
                    sqlParameter.Value = value;
                }
            }
            catch (Exception ex)
            {
                TraceLog.WriteError("{0}", ex);
            }
            return(sqlParameter);
        }
コード例 #54
0
ファイル: Parameter.cs プロジェクト: lanicon/TaskETL
 /// <summary>
 /// Create a new instance of <see cref="Parameter"/>.
 /// </summary>
 /// <param name="name">Name of parameter.</param>
 /// <param name="value">Value of parameter.</param>
 /// <param name="type">Type of parameter.</param>
 /// <param name="direction">Direction of parameter.</param>
 /// <param name="size">Size of paramter.</param>
 /// <returns></returns>
 public static Parameter NewInstance(string name, object value, DbType type,
                                     ParameterDirection direction, int size)
 {
     return(new Parameter(name, value, type, direction, size));
 }
コード例 #55
0
ファイル: DBHelper.cs プロジェクト: giagiigi/MYDZ
        /// <summary>
        /// 添加查询参数
        /// </summary>
        /// <param name="ParamName">参数名称</param>
        /// <param name="DbType">数据类型</param>
        /// <param name="Size">范围</param>
        /// <param name="Direction">参数类型</param>
        /// <param name="Value">参数值</param>
        /// <returns></returns>
        public static IDbDataParameter MakeParam(string ParamName, System.Data.DbType DbType, int Size, ParameterDirection Direction, object Value)
        {
            IDbDataParameter param = DBFactory.CreateParameter(ParamName, DbType, Size);

            param.Direction = Direction;
            if (!(Direction == ParameterDirection.Output && Value == null))
            {
                param.Value = Value;
            }

            return(param);
        }
コード例 #56
0
 public IDataParameter CreateParameter(string name, int size, object value, DbType type, ParameterDirection direction)
 {
     return(DataParameterManager.CreateParameter(providerName, name, value, size, type));
 }
コード例 #57
0
        public static DbParameter CreateParameter(string parameterName, DbType dbType, ParameterDirection parameterDirection, string sourceColumn, DataRowVersion dataRowVersion, bool sourceColumnNullMapping, object value)
        {
            DbParameter oDbParameter = dbProviderFactory.CreateParameter();

            oDbParameter.ParameterName           = parameterName;
            oDbParameter.DbType                  = dbType;
            oDbParameter.Direction               = parameterDirection;
            oDbParameter.SourceColumn            = sourceColumn;
            oDbParameter.SourceVersion           = dataRowVersion;
            oDbParameter.SourceColumnNullMapping = sourceColumnNullMapping;
            oDbParameter.Value = value;

            return(oDbParameter);
        }
コード例 #58
0
        private static DbParameter CreateDBParameter(string strParameterName, DbType dbType, object value, ParameterDirection direction)
        {
            DbParameter parameter = dataFactory.CreateParameter();

            parameter.ParameterName = strParameterName;
            parameter.DbType        = dbType;
            parameter.Value         = value;
            parameter.Direction     = direction;
            return(parameter);
        }
コード例 #59
0
 public ColumnMapBuilder <TEntity> SetParamDirection(string propertyName, ParameterDirection direction)
 {
     MappedColumns.GetByFieldName(propertyName).ColumnInfo.ParamDirection = direction;
     return(this);
 }
コード例 #60
-1
 public static OracleParameter CreateParameter(ParameterDirection direction, string paramName, OracleDbType dbType, int size, object value)
 {
     OracleParameter param = new OracleParameter(paramName, dbType, size);
     param.Value = value;
     param.Direction = direction;
     return param;
 }