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(')'); } }
/// <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); }
/// <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); }
/// <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); }
/// <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()); }