Example #1
0
        private void JoinToString(Join join, StringBuilder sb, bool modifySelf)
        {
            sb.Append(join.GetKeyword());
            sb.Append(' ');
            sb.Append(SqlSyntax.AutoBracketValid(join.Table));

            // joinAlias belirtilmişse ekle
            if (!string.IsNullOrEmpty(join.Name))
            {
                sb.Append(' ');
                sb.Append(join.Name);
            }

            if (!ReferenceEquals(null, join.OnCriteria) &&
                !join.OnCriteria.IsEmpty)
            {
                sb.Append(" ON (");

                if (modifySelf)
                {
                    sb.Append(join.OnCriteria.ToString(this));
                }
                else
                {
                    sb.Append(join.OnCriteria.ToStringIgnoreParams());
                }

                sb.Append(')');
            }
        }
Example #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Criteria"/> class
        /// containing an expression like "alias.field".
        /// </summary>
        /// <param name="alias">The alias.</param>
        /// <param name="field">The field.</param>
        /// <exception cref="ArgumentNullException">
        /// Field or alias is null or empty string.
        /// </exception>
        public Criteria(string alias, string field)
        {
            if (String.IsNullOrEmpty(field))
            {
                throw new ArgumentNullException("field");
            }

            if (String.IsNullOrEmpty(alias))
            {
                throw new ArgumentNullException("alias");
            }
            this.expression = alias + "." + SqlSyntax.AutoBracketValid(field);
        }
Example #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Criteria"/> class
        /// containing an expression like "tjoinnumber.field" (t7.field).
        /// </summary>
        /// <param name="joinNumber">The join number.</param>
        /// <param name="field">The field.</param>
        /// <exception cref="ArgumentNullException">field is null or empty</exception>
        /// <exception cref="ArgumentOutOfRangeException">joinNumber is less than zero</exception>
        public Criteria(int joinNumber, string field)
        {
            if (String.IsNullOrEmpty(field))
            {
                throw new ArgumentNullException("field");
            }

            if (joinNumber < 0)
            {
                throw new ArgumentOutOfRangeException("joinNumber");
            }

            this.expression = joinNumber.TableAliasDot() + SqlSyntax.AutoBracketValid(field);
        }
Example #4
0
        /// <summary>
        /// Adds a table to the FROM statement. When it is called more than once, puts a comma
        /// between table names (cross join)
        /// </summary>
        /// <param name="table">Table name</param>
        /// <returns>The query itself.</returns>
        public SqlQuery From(string table)
        {
            if (string.IsNullOrEmpty(table))
            {
                throw new ArgumentNullException("table");
            }

            if (from.Length > 0)
            {
                from.Append(", ");
            }

            from.Append(SqlSyntax.AutoBracketValid(table));

            return(this);
        }
Example #5
0
        /// <summary>
        ///   Formats a DELETE query.</summary>
        /// <param name="tableName">
        ///   Tablename.</param>
        /// <param name="where">
        ///   Where part of the query.</param>
        /// <returns>
        ///   Formatted query.</returns>
        public static string Format(string tableName, string where)
        {
            if (tableName == null || tableName.Length == 0)
            {
                throw new ArgumentNullException(tableName);
            }

            StringBuilder sb = new StringBuilder("DELETE FROM ", 24 + where.Length);

            sb.Append(SqlSyntax.AutoBracketValid(tableName));

            if (!String.IsNullOrEmpty(where))
            {
                sb.Append(" WHERE ");
                sb.Append(where);
            }
            return(sb.ToString());
        }
        /// <summary>
        ///   Formats an INSERT query.</summary>
        /// <param name="tableName">
        ///   Tablename (required).</param>
        /// <param name="nameValuePairs">
        ///   Field names and values. Must be passed in the order of <c>[field1, value1, field2,
        ///   value2, ...., fieldN, valueN]</c>. It must have even number of elements.</param>
        /// <returns>
        ///   Formatted query.</returns>
        public static string Format(string tableName, List <string> nameValuePairs)
        {
            if (tableName == null || tableName.Length == 0)
            {
                throw new ArgumentNullException(tableName);
            }

            if (nameValuePairs == null)
            {
                throw new ArgumentNullException("nameValuePairs");
            }

            if (nameValuePairs.Count % 2 != 0)
            {
                throw new ArgumentOutOfRangeException("nameValuePairs");
            }

            StringBuilder sb = new StringBuilder("INSERT INTO ", 64 + nameValuePairs.Count * 16);

            sb.Append(SqlSyntax.AutoBracketValid(tableName));
            sb.Append(" (");
            for (int i = 0; i < nameValuePairs.Count; i += 2)
            {
                if (i > 0)
                {
                    sb.Append(", ");
                }
                sb.Append(SqlSyntax.AutoBracket(nameValuePairs[i]));
            }
            sb.Append(") VALUES (");
            for (int i = 1; i < nameValuePairs.Count; i += 2)
            {
                if (i > 1)
                {
                    sb.Append(", ");
                }
                sb.Append(nameValuePairs[i]);
            }
            sb.Append(')');

            return(sb.ToString());
        }
        /// <summary>
        ///   Formats an SQL UPDATE statement.</summary>
        /// <param name="tableName">
        ///   Tablename (required).</param>
        /// <param name="nameValuePairs">
        ///   Field name and values. Should have structure of <c>[field1, value1, field2, value2, ...., fieldN, valueN]</c>.
        ///   This array is required and must have even number of elements.</param>
        /// <param name="where">
        ///   WHERE clause (can be null).</param>
        /// <returns>
        ///   Formatted UPDATE query.</returns>
        public static string Format(string tableName, string where,
                                    List <string> nameValuePairs)
        {
            if (tableName == null || tableName.Length == 0)
            {
                throw new ArgumentNullException(tableName);
            }

            if (nameValuePairs == null)
            {
                throw new ArgumentNullException("nameValuePairs");
            }

            if (nameValuePairs.Count % 2 != 0)
            {
                throw new ArgumentOutOfRangeException("nameValuePairs");
            }

            StringBuilder sb = new StringBuilder("UPDATE ", 64 + where.Length +
                                                 nameValuePairs.Count * 16);

            sb.Append(SqlSyntax.AutoBracketValid(tableName));
            sb.Append(" SET ");
            for (int i = 0; i < nameValuePairs.Count - 1; i += 2)
            {
                if (i > 0)
                {
                    sb.Append(", ");
                }
                sb.Append(SqlSyntax.AutoBracket(nameValuePairs[i]));
                sb.Append(" = ");
                sb.Append(nameValuePairs[i + 1]);
            }

            if (where != null && where.Length > 0)
            {
                sb.Append(" WHERE ");
                sb.Append(where);
            }

            return(sb.ToString());
        }