Прежде всего, я не очень разбираюсь в жестком кодировании, и поэтому я действительно пытался найти решение моей проблемы, но я не получаю объяснений. Или, возможно, это не так, как я закодировал мой, поэтому я не могу понять.
Технически у меня есть 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();
Вероятно, здесь есть несколько проблем.
Вначале это утверждение 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();
}