Помогите реализовать через класс

139
07 августа 2018, 23:30

Коротко говоря пж помогите есть код который кидает информацию в БД знаю как сделать штобы с формы кидало но хотелось ето в классе чтобы не дублировать код, просто вызвать метод, если можно кодом ответ:

 private void buttonSmartphon_Click(object sender, EventArgs e)
    {
        Formgolovna FormG = new Formgolovna();
        string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=E:\UNIVERSITY\ООП\Електронний магазин\login\login\Products.mdf;Integrated Security=True";
       SqlConnection SqlConnection = new SqlConnection(connectionString);
        SqlConnection.Open();
        if (!string.IsNullOrEmpty(label4.Text) && !string.IsNullOrWhiteSpace(label4.Text) &&
              !string.IsNullOrEmpty(bunifuMetroTextbox1.Text) && !string.IsNullOrWhiteSpace(bunifuMetroTextbox1.Text) 
              && !string.IsNullOrWhiteSpace(label7.Text) && !string.IsNullOrWhiteSpace(label7.Text) 
              && !string.IsNullOrWhiteSpace(label9.Text) && !string.IsNullOrWhiteSpace(label9.Text))
        {
            SqlCommand command = new SqlCommand("INSERT INTO [order] (NameProducts, Price, Count, Username)VALUES(@NameProducts, @Price, @Count, @Username)", SqlConnection);
            command.Parameters.AddWithValue("NameProducts", label4.Text);
            command.Parameters.AddWithValue("Price", label7.Text);
            command.Parameters.AddWithValue("Count", bunifuMetroTextbox1.Text);
            command.Parameters.AddWithValue("Username", label9.Text);

            command.ExecuteNonQuery();
            MessageBox.Show("Замовлення успішно прийняте!", "CONGRATULATIONS", MessageBoxButtons.OK);
        }

    }
Answer 1

Я ничего не понял, но попытаюсь вам помочь :)

Первым делом стоит создать класс, который будет сущностью, которую вы заносите в базу данных:

public class Order
{
    public string NameProducts { get; set; }
    public decimal Price { get; set; }
    public int Count { get; set; }
    public string UserName { get; set; }
}

Класс, который используется для считывания, добавления, редактирования и удаления сущностей из бд обычно называется "Repository" (название паттерна):

public class OrdersRepository
{
    private readonly string _connectionString;
    private const string InsertQueryText = "INSERT INTO [order] (NameProducts, Price, Count, Username)" +
                                            "VALUES(@NameProducts, @Price, @Count, @Username)";
    public OrdersRepository(string connectionString)
    {
        _connectionString = connectionString;
    }
    public void Add(Order order)
    {
        using (var connection = new SqlConnection(_connectionString))
        {
            connection.Open();
            using (var command = new SqlCommand(InsertQueryText, connection))
            {
                command.Parameters.AddWithValue("NameProducts", order.NameProducts);
                command.Parameters.AddWithValue("Price", order.Price);
                command.Parameters.AddWithValue("Count", order.Count);
                command.Parameters.AddWithValue("Username", order.UserName);
                command.ExecuteNonQuery();
            }
            connection.Close();
        }
    }
}

Пример использования в вашем коде:

    private void buttonSmartphon_Click(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(label4.Text) && !string.IsNullOrWhiteSpace(label4.Text) &&
            !string.IsNullOrEmpty(bunifuMetroTextbox1.Text) && !string.IsNullOrWhiteSpace(bunifuMetroTextbox1.Text)
            && !string.IsNullOrWhiteSpace(label7.Text) && !string.IsNullOrWhiteSpace(label7.Text)
            && !string.IsNullOrWhiteSpace(label9.Text) && !string.IsNullOrWhiteSpace(label9.Text))
        {
            // Создание объекта репозитория.
            var ordersRepository = new OrdersRepository(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=E:\UNIVERSITY\ООП\Електронний магазин\login\login\Products.mdf;Integrated Security=True");
            // Создание объекта для добавления в базу данных.
            var order = new Order()
            {
                Count = Convert.ToInt32(bunifuMetroTextbox1.Text),
                NameProducts = label4.Text,
                Price = Convert.ToDecimal(label7.Text),
                UserName = label9.Text
            };
            try
            {
                // Попытка добавить сущность в бд.
                ordersRepository.Add(order);
            }
            catch (Exception ex)
            {
                // Если добавить не получилось, то вы водим ошибку.
                MessageBox.Show("Ошибка", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            MessageBox.Show("Замовлення успішно прийняте!", "CONGRATULATIONS", MessageBoxButtons.OK);
        }
        else
        {
            // Если форма не прошла валидацию
            MessageBox.Show("Ошибка", "Некорректные данные", MessageBoxIcon.Error);
        }
    }
READ ALSO
Не компилируется проект

Не компилируется проект

Не компилируется проект в MSVS2015 подNET Framework 4

121
C# вопрос по AngleSharp

C# вопрос по AngleSharp

Нужная мне информация для парсинга храниться например в таком виде

293
C# WPF MVVM MenuItem Template

C# WPF MVVM MenuItem Template

Как изменять Template для MenuItem на топ уровне?

171
Кодировать в base64

Кодировать в base64

Есть байтовый массив byte[] FileМне надо закодировать в base64, я делаю это так

150