private static void AddColumn(string columnName, System.Type datatype, int len, int dec, bool EnableNull, object defaultValue) { var vartype = string.Empty; vartype = ConvertColumnType.TypeAsString(datatype); if (altermode) { if (firstTime) { sbuilder.Append(" ADD"); } firstTime = false; } else { sbuilder.Append(sbuilder.ToString().EndsWith("(") ? "" : ", "); } if (vartype == "int" || vartype == "bit" || vartype == "datetime" || vartype == "text") { sbuilder.Append($" [{columnName}] {vartype}"); } else if (vartype == "decimal") { sbuilder.Append($" [{columnName}] {vartype}({len},{dec})"); } else { sbuilder.Append($" [{columnName}] {vartype}({len})"); } sbuilder.Append(EnableNull || altermode ? " NULL" : " NOT NULL"); if (EnableNull) { if (vartype == "decimal" || vartype == "int" || vartype == "tinyint" || vartype == "bit") { sbuilder.Append($" DEFAULT {defaultValue}"); } else { sbuilder.Append($" DEFAULT '{defaultValue}'"); } } }
public QueryBuilder SelectCastAs <T>(object column, int len = 0, int dec = 0, string name = "") { var castString = string.Empty; if (name.IsEmpty() && !(column is IColumn)) { System.Diagnostics.Debug.Assert(false, "Missing name of AS"); return(this); } var vartype = ConvertColumnType.TypeAsString(typeof(T)); if (vartype == "int" || vartype == "bit" || vartype == "datetime" || vartype == "text") { castString += $"{vartype}"; } else if (vartype == "decimal") { castString += $"{vartype}({len},{dec})"; } else { castString += $"{vartype}({len})"; } if (_select) { sb.AppendFormat("SELECT CAST({0} as {1}) as [{2}] ", DecodeColumn(column), castString, name.IsEmpty() ? (column as IColumn).Name : name); } else { sb.AppendFormat(", CAST({0} as {1}) as [{2}] ", DecodeColumn(column), castString, name.IsEmpty() ? (column as IColumn).Name : name); } _select = false; return(this); }