Добавление продукта и категории товаров

Добавление товара и его поставщика

Добавление нового товара и его поставщика происходит тогда, когда пользователь нажимает кнопку Добавить, расположенную в верхней части окна приложения (рис.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.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: