Добавление продукта и категории товаров
Добавление товара и его поставщика
Добавление нового товара и его поставщика происходит тогда, когда пользователь нажимает кнопку Добавить, расположенную в верхней части окна приложения (рис.1). Предварительно пользователь должен ввести товар и его поставщика в поля Товары и Поставщики соответственно. Программный код кнопки Добавить:
private void button4_Click(object sender, EventArgs e)
{
if (Goods.Text != "" && Provides.Text != "")//если текстовые поля не пусты
{
//то создать новую запись в таблице Shops
DataRow row = dataSet1.Shops.NewRow();
row["Goods"] = Goods.Text;
row["Provides"] = Provides.Text;
dataSet1.Shops.Rows.Add(row);//добавление записи в таблицу
UpdateGoods();//обновление главного окна
}
else
{
if (Goods.Text == "" && Provides.Text == "")
{
MessageBox.Show("Введите данные!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
}
}
Если пользователь НЕ ВВЕЛ товар и его поставщика, то откроется окно сообщений с текстом: «Введите данные!». Для добавления новой строки используется метод NewRow(). На следующем этапе введенные строки товара и поставщика записываются в соответствующие столбцы таблицы. Далее обработчик события вызывает метод UpdateGoods().
Добавление продукта и категории товаров происходит тогда, когда пользователь нажимает кнопку Добавить, расположенную возле списка продуктов. Предварительно пользователь должен ввести категорию товаров и продукт в поля Категория товаров и Продукт соответственно. Программный код для этой кнопки:
private void button5_Click(object sender, EventArgs e)
{
//добавление новой записи в таблицу Goods
if (Category.Text != "" && Tovar.Text != "")
{
DataRow row = dataSet1.Goods.NewRow();
row["Goods categories"] = Category.Text;
row["Product"] = Tovar.Text;
row["Amount"] = Convert.ToInt32(numericUpDown1.Value);
dataSet1.Goods.Rows.Add(row);
UpdateGoods();
}
else
{
if (Category.Text == "" && Tovar.Text == "")
{
MessageBox.Show("Введите данные!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
}
}
Если пользователь НЕ ВВЕЛ категорию товара и продукт, то откроется окно сообщений с текстом: «Введите данные!». Для добавления новой строки используется метод NewRow(). Для добавления количества товара используется компонент NumericUpDown. На следующем этапе введенные строки категории товаров и продукта записываются в соответствующие столбцы таблицы. Далее обработчик события вызывает метод UpdateGoods().
Выбор записей в таблицах
Если необходимо удалить или изменить данные из базы, то для этого нужно указать запись, с которой будут производиться эти действия. В данной программе запись выбирается путем выделения соответствующей строки DataGridView. Для обеих таблиц нужно установить свойство MultiSelect в false, чтобы запретить выбор более чем одной строки.
Номер выбранной записи будет сохраняться в переменных: RowId для таблицы Shops и Number_Goods для таблицы Goods. Эти переменные следует добавить в класс главной формы следующим образом:
private int RowId;
private int Number_goods;
Выбор нужной записи осуществляется в обработчике события RowHeaderMouseClick таблиц DataGridView. Код обработчика для таблицы Shops представлен ниже:
private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
try
{
RowId = e.RowIndex;
Goods.Text = dataSet1.Shops.Rows[RowId]["Goods"].ToString();
Provides.Text = dataSet1.Shops.Rows[RowId]["Provides"].ToString();
}
catch
{
MessageBox.Show("Выберите строку!!!");
}
}
Когда пользователь выбирает строку в таблице, этот обработчик определяет индекс строки, которая стала выделенной в результате выполнения этой операции, и записывает его в переменную RowId. После получения номера выбранной строки выполняется копирование полей товаров и поставщиков из таблицы в соответствующие текстовые поля. Аналогичным образом выглядит обработчик события для таблицы Goods:
private void dataGridView2_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
try
{
Number_goods = e.RowIndex;
Category.Text = dataSet1.Goods.Rows[Number_goods]["Goods categories"].ToString();
Tovar.Text = dataSet1.Goods.Rows[Number_goods]["Product"].ToString();
}
catch
{
MessageBox.Show("Выберите строку!!!");
}
}
Редактирование записей таблицы Shops
Для того, чтобы отредактировать товар или его поставщика, нужно выделить требуемую строку в dataGridView1. Затем, отредактировав товар или его поставщика, следует нажать кнопку Изменить. Ниже приведен код обработчика события этой кнопки, изменяющей содержимое ячеек соответствующей строки в таблице Shops:
private void button2_Click(object sender, EventArgs e)
{
//редактирование таблицы Shops
if (dataGridView1.SelectedRows.Count != 0)
{
DataRow row = dataSet1.Shops.Rows[RowId];
row["Goods"] = Goods.Text;
row["Provides"] = Provides.Text;
UpdateGoods();
}
else
{
MessageBox.Show("Выберите строку для редактирования");
}
}
Здесь проверяется, выбрана ли строка для редактирования. Если нет, то выдается сообщение об ошибке, и обработчик завершает работу. Значения полей Goods и Provides этой строки изменяются на новые, введенные пользователем в текстовых полях, затем вызывается метод UpdateGoods() для сохранения изменений в таблицах и БД.
Редактирование записей таблицы Goods
Для редактирования данных таблицы Goods используется кнопка Изменить, расположенная справа от списка продуктов. Код обработчика для данной кнопки:
private void button6_Click(object sender, EventArgs e)
{
//редактирование таблицы Goods
if (dataGridView2.SelectedRows.Count != 0)
{
DataRow row = dataSet1.Goods.Rows[Number_goods];
row["Goods categories"] = Category.Text;
row["Product"] = Tovar.Text;
row["Amount"] = Convert.ToInt32(numericUpDown1.Value);
UpdateGoods();
}
else
{
MessageBox.Show("Выберите строку редактирования");
}
}
Действие этого обработчика идентично предыдущему, за исключением, что количество товаров изменяется при помощи компонента NumericUpDown.