Ejemplo n.º 1
0
        public void Delete(string table, IEnumerable <string> columns = null, IEnumerable <Condition> conditions = null)
        {
            delete = new StringBuilder("DELETE FROM ");
            SqlCommand command = new SqlCommand();

            delete.Append($"{table} ");
            if (conditions != null)
            {
                delete.Append("WHERE ");
            }
            foreach (var item in conditions)
            {
                var paramName = new ParamNameGenerator().GenerateParamName(item.ColumnName);
                delete.Append(CreateCondition(item) + paramName);
                command.Parameters.AddWithValue(paramName, item.Value);
            }
            command.CommandText = delete.ToString();
            command.Connection  = con;
            try
            {
                con.Open();
                command.ExecuteNonQuery();
            }
            finally
            {
                con?.Close();
            }
        }
Ejemplo n.º 2
0
        public void Update(string table, IEnumerable <IStatement> columns = null, IEnumerable <Condition> conditions = null)
        {
            update = new StringBuilder("UPDATE ");
            var        paramGen = new ParamNameGenerator();
            SqlCommand command  = new SqlCommand();

            update.Append($"{table} ");
            var updateColsList = new List <string>();

            if (columns != null)
            {
                update.Append("SET ");
                foreach (var item in columns)
                {
                    var    paramName = paramGen.GenerateParamName(item.ColumnName);
                    string cond      = CreateStatement(item) + paramName;
                    updateColsList.Add(cond);
                    command.Parameters.AddWithValue(paramName, item.Value);
                }
                update.Append(string.Join(" , ", updateColsList));
            }
            if (conditions != null && conditions.Any())
            {
                update.Append(" WHERE ");
                var paramsList = new List <string>();
                foreach (var item in conditions)
                {
                    var    paramName = paramGen.GenerateParamName(item.ColumnName);
                    string cond      = CreateCondition(item) + paramName;
                    paramsList.Add(cond);
                    command.Parameters.AddWithValue(paramName, item.Value);
                }
                update.Append(string.Join(" AND ", paramsList));
            }

            command.CommandText = update.ToString();
            command.Connection  = con;
            try
            {
                SqlDataAdapter dataAdapter = new SqlDataAdapter();

                dataAdapter.UpdateCommand = command;
                con.Open();
                dataAdapter.UpdateCommand.ExecuteNonQuery();
            }
            finally
            {
                command?.Dispose();
                con?.Close();
            }
        }
Ejemplo n.º 3
0
        public DataTable Select(string table, IEnumerable <string> columns = null, IEnumerable <Condition> conditions = null)
        {
            select = new StringBuilder("SELECT ");
            SqlDataAdapter adapter;

            if (columns != null)
            {
                select.Append(string.Join(", ", columns));
            }
            select.Append($"*FROM {table}");
            SqlCommand command        = new SqlCommand();
            var        conditionsList = new List <string>();

            if (conditions != null)
            {
                select.Append(" WHERE ");
                foreach (var item in conditions)
                {
                    var    paramName = new ParamNameGenerator().GenerateParamName(item.ColumnName);
                    string cond      = CreateCondition(item) + paramName;
                    conditionsList.Add(cond);
                    command.Parameters.AddWithValue(paramName, item.Value);
                }
                select.Append(string.Join(" AND ", conditionsList));
            }
            command.CommandText = select.ToString();
            command.Connection  = con;

            adapter = new SqlDataAdapter(command);
            dt      = new DataTable();
            try
            {
                con.Open();
                adapter.Fill(dt);
                adapter.Dispose();
            }
            catch (SqlException)
            {
                throw new ArgumentNullException();
            }
            catch (InvalidOperationException)
            {
                throw new TooManyConnectionsOpenedException();
            }
            finally
            {
                command?.Dispose();
                con?.Close();
            }
            return(dt);
        }
Ejemplo n.º 4
0
        public void Insert(string table, IEnumerable <string> columns = null, IEnumerable <IStatement> conditions = null)
        {
            add = new StringBuilder("INSERT INTO ");
            add.Append($"{table} ");
            if (columns != null)
            {
                add.Append(string.Join(", ", columns));
            }
            SqlCommand command = new SqlCommand();

            if (conditions != null)
            {
                add.Append("(");
                var conditionsList = new List <string>();
                var paramList      = new List <string>();
                foreach (var item in conditions)
                {
                    var paramName = new ParamNameGenerator().GenerateParamName(item.ColumnName);
                    conditionsList.Add(item.ColumnName);
                    command.Parameters.AddWithValue(paramName, item.Value);
                    paramList.Add(paramName);
                }
                add.Append(string.Join(",", conditionsList)).Append(" ) VALUES( ").Append(string.Join(",", paramList)).Append(")");
            }
            command.CommandText = add.ToString();
            command.Connection  = con;
            try
            {
                con.Open();
                command.ExecuteNonQuery();
            }
            finally
            {
                command?.Dispose();
                con?.Close();
            }
        }