public DbCommand GetDbCommand() { DbCommand command = DataBaseProvider.GetCommand(); foreach (SqliteParameter parameter in _parameters) { command.Parameters.Add(parameter); } command.CommandText = _whereClausel.Count == 0 ? $"DELETE FROM \"{_tablename}\"" : $"DELETE FROM \"{_tablename}\" WHERE {string.Join(" AND ", _whereClausel.ToArray())}"; return(command); }
public DbCommand GetDbCommand() { DbCommand command = DataBaseProvider.GetCommand(); foreach (SqliteParameter parameter in _parameters) { command.Parameters.Add(parameter); } command.CommandText = _insertFields.Count == 0 ? $"INSERT INTO \"{_tablename}\" DEFAULT VALUES;\r\nSELECT {string.Join(", ", _selectFields.ToArray())} FROM {_tablename} WHERE {string.Join(" AND ", _whereClausel.ToArray())}" : $"INSERT INTO \"{_tablename}\" ({string.Join(", ", _insertFields.ToArray())}) VALUES ({string.Join(", ", _insertValues.ToArray())});\r\nSELECT {string.Join(", ", _selectFields.ToArray())} FROM \"{_tablename}\" WHERE {string.Join(" AND ", _whereClausel.ToArray())}"; return(command); }
public DbCommand GetDbCommand() { string[] setStrings = new string[_setValues.Count]; int i = 0; foreach (KeyValuePair <string, string> item in _setValues) { setStrings[i] = $"{item.Key} = {item.Value}"; i++; } DbCommand command = DataBaseProvider.GetCommand(); foreach (SqliteParameter parameter in _parameters) { command.Parameters.Add(parameter); } command.CommandText = $"UPDATE \"{_tablename}\" SET {string.Join(", ", setStrings)} WHERE {string.Join(" AND ", _whereClausel.ToArray())};\r\nSELECT {string.Join(", ", _selectFields.ToArray())} FROM \"{_tablename}\" WHERE {string.Join(" AND ", _whereClausel.ToArray())}"; return(command); }
public DbCommand GetDbCommand() { if (string.IsNullOrEmpty(_tablename)) { throw new InvalidOperationException("Tablename is not set."); } StringBuilder stringBuilder = new StringBuilder("SELECT"); stringBuilder.Append($" {string.Join($", ", _selectFields.Select(x => $"{_alias}.{x} {x}").ToArray())} FROM \"{_tablename}\" {_alias}"); string whereClause = null; if (_whereExpressions.Count == 1) { whereClause = _databaseProvider.ExpressionParser.ParseExpression(_whereExpressions[0], this); } else if (_whereExpressions.Count > 1) { foreach (LambdaExpression expression in _whereExpressions) { if (whereClause == null) { whereClause = "("; } else { whereClause += " AND ("; } whereClause += _databaseProvider.ExpressionParser.ParseExpression(expression, this) + ")"; } } foreach (Join join in _joins) { stringBuilder.Append(" LEFT OUTER ").Append(join); } if (!string.IsNullOrWhiteSpace(whereClause)) { stringBuilder.Append(" WHERE ").Append(whereClause); } if (_orderbyExpressions.Count != 0) { stringBuilder.Append(" ORDER BY ").Append(string.Join(", ", _orderbyExpressions.Select( exp => exp.Item2 ? _databaseProvider.ExpressionParser.ParseExpression(exp.Item1, this) + " DESC": _databaseProvider.ExpressionParser.ParseExpression(exp.Item1, this) ).ToArray())); } if (_top > -1) { stringBuilder.AppendFormat(" LIMIT {0}", _top); } DbCommand command = DataBaseProvider.GetCommand(); foreach (SqliteParameter parameter in _parameters) { command.Parameters.Add(parameter); } command.CommandText = stringBuilder.ToString(); return(command); }