AddParameter() public method

Adds a parameter value
public AddParameter ( string paramName, object paramValue ) : IDbDataParameter
paramName string The parameter name
paramValue object The value to assign
return IDbDataParameter
コード例 #1
0
 public void SetupTestFixture()
 {
     var config = new DatabaseConfig(DatabaseConfig.SqlServer, "test", "test", "test", "test", "1000");
     _connection = new DatabaseConnectionFactory().CreateConnection(config);
     _testStatement = new SqlStatement(_connection);
     _rawStatement = "insert into tb1 (field1, field2, field3) values (@Param1, @Param2, @Param3)";
     _testStatement.Statement.Append(_rawStatement);
     _addedParameter = _testStatement.AddParameter("Param1", "12345");
     _testStatement.AddParameter("Param2", "67890");
     _testStatement.AddParameter("Param3", "13579");
     _command = _connection.GetConnection().CreateCommand();
     _testStatement.SetupCommand(_command);
 }
コード例 #2
0
        /// <summary>
        /// Adds the specified property value as a parameter
        /// </summary>
        /// <param name="prop">The business object property</param>
        private void AddPropToInsertStatement(BOProp prop)
        {
            if (!_firstField)
            {
                _dbFieldList.Append(", ");
                _dbValueList.Append(", ");
            }
            _dbFieldList.Append(_connection.SqlFormatter.DelimitField(prop.DatabaseFieldName));
            string paramName = _gen.GetNextParameterName();

            _dbValueList.Append(paramName);
            _insertSql.AddParameter(paramName, prop.Value, prop.PropertyType);
            _firstField = false;
        }
コード例 #3
0
        /// <summary>
        /// This property returns the
        /// Returns a string containing the database field name and the
        /// persisted value, in the format of:<br/>
        /// "[fieldname] = '[value]'" (eg. "children = '2'")<br/>
        /// If a sql statement is provided, then the arguments are added
        /// in parameterised form.
        /// </summary>
        /// <param name="prop"></param>
        /// <param name="sql">A sql statement used to generate and track parameters</param>
        /// <returns>Returns a string</returns>
        private static string PersistedDatabaseNameFieldNameValuePair(IBOProp prop, SqlStatement sql)
        {
            if (prop.PersistedPropertyValue == null)
            {
                return(sql.Connection.SqlFormatter.DelimitField(prop.DatabaseFieldName + " is NULL "));
            }
            if (sql == null)
            {
                return(prop.DatabaseFieldName + " = '" + prop.PersistedPropertyValueString + "'");
            }
            string paramName = sql.ParameterNameGenerator.GetNextParameterName();

            sql.AddParameter(paramName, prop.PersistedPropertyValue, prop.PropertyType);
            return(sql.Connection.SqlFormatter.DelimitField(prop.DatabaseFieldName) + " = " + paramName);
        }
コード例 #4
0
ファイル: SelectQueryDB.cs プロジェクト: SaberZA/habanero
        private string AddParameter(object value, SqlStatement statement)
        {
            if (value == null)
            {
                value = "NULL";
            }
            var resolvableValue = value as IResolvableToValue;

            if (resolvableValue != null)
            {
                value = resolvableValue.ResolveToValue();
            }
            if (value is Criteria.CriteriaValues)
            {
                return(CreateInClause(statement, value));
            }
            var paramName = statement.ParameterNameGenerator.GetNextParameterName();

            statement.AddParameter(paramName, value, value.GetType());
            return(paramName);
        }
コード例 #5
0
ファイル: SelectQueryDB.cs プロジェクト: SaberZA/habanero
        private string CreateInClause(SqlStatement statement, object value)
        {
            string paramName = statement.ParameterNameGenerator.GetNextParameterName();
            string inClause  = "(";

            Criteria.CriteriaValues criteriaValues = (Criteria.CriteriaValues)value;
            int i = 0;

            foreach (var paramValue in criteriaValues)
            {
                statement.AddParameter(paramName, paramValue);
                inClause += paramName;
                if (i < criteriaValues.Count - 1)
                {
                    inClause += ", ";
                    paramName = statement.ParameterNameGenerator.GetNextParameterName();
                }
                i++;
            }
            inClause += ")";
            return(inClause);
        }
コード例 #6
0
ファイル: SelectQueryDB.cs プロジェクト: Chillisoft/habanero
 private string CreateInClause(SqlStatement statement, object value)
 {
     string paramName = statement.ParameterNameGenerator.GetNextParameterName();
     string inClause = "(";
     Criteria.CriteriaValues criteriaValues = (Criteria.CriteriaValues)value;
     int i = 0;
     foreach (var paramValue in criteriaValues)
     {
         statement.AddParameter(paramName, paramValue);
         inClause += paramName;
         if (i < criteriaValues.Count - 1)
         {
             inClause += ", ";
             paramName = statement.ParameterNameGenerator.GetNextParameterName();
         }
         i++;
     }
     inClause += ")";
     return inClause;
 }
コード例 #7
0
ファイル: SelectQueryDB.cs プロジェクト: Chillisoft/habanero
 private string AddParameter(object value, SqlStatement statement)
 {
     if (value == null) value = "NULL";
     var resolvableValue = value as IResolvableToValue;
     if (resolvableValue != null)
     {
         value = resolvableValue.ResolveToValue();
     }
     if (value is Criteria.CriteriaValues)
     {
         return CreateInClause(statement, value);
     }
     var paramName = statement.ParameterNameGenerator.GetNextParameterName();
     statement.AddParameter(paramName, value, value.GetType());
     return paramName;
 }
コード例 #8
0
        public void AddParameter_WhenSqlServerCE_StringGreaterThan4000_ShouldReturnSqlServerNTextType()
        {
            //---------------Set up test pack-------------------
            var sqlStatement = new SqlStatement(GetSQLServerCeConnection(), "some statement");
            var bigTextValue = TestUtil.GetRandomString(4001);
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var parameter = sqlStatement.AddParameter("ntextParam", bigTextValue);
            //---------------Test Result -----------------------
            Assert.AreEqual(SqlDbType.NText,ReflectionUtilities.GetPropertyValue(parameter,"SqlDbType"));
        }
コード例 #9
0
        public void AddParameter_WhenSqlServerCE_ByteArray_ShouldReturnSqlServerImageType()
        {
            //---------------Set up test pack-------------------
            var sqlStatement = new SqlStatement(GetSQLServerCeConnection(), "some statement");
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var parameter = sqlStatement.AddParameter("imageParam", new byte[8001]);
            //---------------Test Result -----------------------
            Assert.AreEqual(SqlDbType.Image,ReflectionUtilities.GetPropertyValue(parameter,"SqlDbType"));
        }
コード例 #10
0
 public void Equals_MatchingSqlAndNonMatchingNumbers()
 {
     //---------------Set up test pack-------------------
     var test1 = new SqlStatement(_connection, "test");
     var test2 = new SqlStatement(_connection, "test");
     test1.AddParameter("param0", 1);
     //---------------Test Result -----------------------
     Assert.IsFalse(test1.Equals(test2));
 }
コード例 #11
0
 public void Equals_MatchingSqlAndNonMatchingParamNames()
 {
     //---------------Set up test pack-------------------
     var test1 = new SqlStatement(_connection, "test");
     var test2 = new SqlStatement(_connection, "test");
     test1.AddParameter("param0", 1);
     test2.AddParameter("sdf", 1);
     //---------------Test Result -----------------------
     Assert.AreNotEqual(test1, test2);
 }
コード例 #12
0
 public void AddParameter_WithOnlyValue()
 {
     //---------------Set up test pack-------------------
     const string startSql = "select * from bob WHERE name = ";
     var builder = new SqlStatement(_connection, startSql);
     const string paramName = "@Param0";
     const DbType expectedParamType = DbType.String;
     //---------------Execute Test ----------------------
     var param = builder.AddParameter(paramName, "bob");
     var actual = builder.Statement.ToString();
     //---------------Test Result -----------------------
     Assert.AreEqual(expectedParamType, param.DbType);
     Assert.AreEqual(1, builder.Parameters.Count);
     Assert.AreEqual(startSql, actual);
 }
コード例 #13
0
		public void AddParameter_WithNullValueAndTimeSpanType_ShouldBeDateTimeDbType()
		{
			//---------------Set up test pack-------------------
			const string startSql = "select * from bob WHERE name = ";
			var builder = new SqlStatement(_connection, startSql);
			const string paramName = "@Param0";
			var paramType = typeof(TimeSpan);
			const DbType expectedParamType = DbType.DateTime;
			//---------------Execute Test ----------------------
			var param = builder.AddParameter(paramName, null, paramType);
			var actual = builder.Statement.ToString();
			//---------------Test Result -----------------------
			Assert.AreEqual(expectedParamType, param.DbType);
			Assert.AreEqual(1, builder.Parameters.Count);
			Assert.AreEqual(startSql, actual);
		}