Как вычесть количество моих продуктов, перечисленных в списке, непосредственно в мою базу данных продуктов? (Баз данных)

0

Прежде всего, я не очень разбираюсь в жестком кодировании, и поэтому я действительно пытался найти решение моей проблемы, но я не получаю объяснений. Или, возможно, это не так, как я закодировал мой, поэтому я не могу понять.

Технически у меня есть 3 lisboxes для количества, названия продукта и цены продукта. Когда товар добавляется в корзину, он автоматически списывается в списке.

Я пытаюсь вычесть количество запасов продукта, сохраненных в базе данных, к числу продуктов, перечисленных в корзине.

Мой код работает, когда я покупаю только один продукт, но когда я пытаюсь купить 2 или более продуктов, ничто не вычитается из базы данных моих продуктов.

PS. Извините, если когда-либо я неправильно разместил свой вопрос, это только моя первая публикация здесь. Заранее спасибо!

string item = string.Empty;
int quantity = 0;

for (int i = 0; i <= LBItemName.Items.Count - 1; i++) {
    item += Convert.ToString(LBItemName.Items[i]); }

for (int j = 0; j <= LBItemQuantity.Items.Count - 1; j++) {
    quantity += Convert.ToInt32(LBItemQuantity.Items[j]); }

MySqlCommand tryCommand = new MySqlCommand("UPDATE QuizonVet.Product SET numberofstocks=(numberofstocks-'" + quantity + "') where productname='" + item + "';", myConnection);

myReader = tryCommand.ExecuteReader();
myReader.Close();
Теги:
listbox

1 ответ

0

Вероятно, здесь есть несколько проблем.

Вначале это утверждение Sql Update должно быть в таком формате, как это

UPDATE QuizonVet.Product SET numberofstocks = (numberofstocks-123), где productname = 'someProduct'

Im, предполагая, что каждый элемент в списке соответствует только индексу в других списках

В вашем коде пытались добавить несколько продуктов вместе, как бы он знал, какое значение обновляет какой товар? в лучшем случае это будет выглядеть так...

UPDATE QuizonVet.Product SET numberofstocks = (numberofstocks-123 324 345), где productname = 'someProduct someProduct someProduct'

Поэтому я думаю, что вы можете сделать новый sql для каждого элемента в списке продуктов и получить его соответствующее количество

Отказ от ответственности Я не тестировал это

Код

for (int i = 0; i <= LBItemName.Items.Count - 1; i++)
{
    var item = Convert.ToString(LBItemName.Items[i]);
    var quantity = Convert.ToInt32(LBItemQuantity.Items[i]);
    MySqlCommand tryCommand = new MySqlCommand($"UPDATE QuizonVet.Product SET numberofstocks=(numberofstocks-{quantity}) where productname='{item}'", myConnection);
    myReader = tryCommand.ExecuteReader();
    myReader.Close();
}
  • 0
    Я исправил некоторые ошибки в коде, но сейчас происходит то, что количество добавляется, а затем вычитается для каждого из продуктов.
  • 0
    Что ты имеешь в виду, это добавляет, затем вычитает. (numberofstocks- {количество}) должно просто минус текущее количество из числа запасов. я просто пытаюсь понять, что ты видишь
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню