Ejemplo n.º 1
0
        public DbCommand GetDbCommand()
        {
            DbCommand command = DataBaseProvider.GetCommand();

            command.Parameters.AddRange(_parameters.ToArray());
            command.CommandText = _whereClausel.Count == 0 ?
                                  string.Format("DELETE {0}", _tablename) :
                                  string.Format("DELETE {0} WHERE {1}", _tablename, string.Join(" AND ", _whereClausel.ToArray()));
            return(command);
        }
Ejemplo n.º 2
0
        public DbCommand GetDbCommand()
        {
            DbCommand command = DataBaseProvider.GetCommand();

            command.Parameters.AddRange(_parameters.ToArray());
            command.CommandText =
                string.Format(_insertFields.Count == 0 ? "{5}INSERT {0} DEFAULT VALUES\r\n{6}SELECT {3} FROM {0} WHERE {4}" :
                              "{5}INSERT {0} ({1}) VALUES ({2})\r\n{6}SELECT {3} FROM {0} WHERE {4}",
                              _tablename,
                              string.Join(", ", _insertFields.ToArray()),
                              string.Join(", ", _insertValues.ToArray()),
                              string.Join(", ", _selectFields.ToArray()),
                              string.Join(" AND ", _whereClausel.ToArray()),
                              _beforInsert.ToString(),
                              _afterInsert.ToString());
            return(command);
        }
        public DbCommand GetDbCommand()
        {
            string[] setStrings = new string[_setValues.Count];
            int      i          = 0;

            foreach (KeyValuePair <string, string> item in _setValues)
            {
                setStrings[i] = string.Format("{0} = {1}", item.Key, item.Value);
                i++;
            }

            DbCommand command = DataBaseProvider.GetCommand();

            command.Parameters.AddRange(_parameters.ToArray());
            command.CommandText = string.Format("UPDATE {0} SET {1} WHERE {2}\r\nSELECT {3} FROM {0} WHERE {2}",
                                                _tablename,
                                                string.Join(", ", setStrings),
                                                string.Join(" AND ", _whereClausel.ToArray()),
                                                string.Join(", ", _selectFields.ToArray()));
            return(command);
        }
        public DbCommand GetDbCommand()
        {
            if (string.IsNullOrEmpty(_tablename))
            {
                throw new InvalidOperationException("Tablename is not set.");
            }

            StringBuilder stringBuilder = new StringBuilder("SELECT");

            if (_top > -1)
            {
                stringBuilder.AppendFormat(" TOP {0}", _top);
            }

            stringBuilder.AppendFormat(" {2}.{0} FROM {1} {2}",
                                       string.Join(string.Format(", {0}.", _alias), _selectFields.ToArray()), _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()));
            }


            DbCommand command = DataBaseProvider.GetCommand();

            command.Parameters.AddRange(_parameters.ToArray());
            command.CommandText = stringBuilder.ToString();
            return(command);
        }