Member 13494894 Ответов: 1

Как я буду кодировать свою кнопку обновления, после чего обновленные данные будут сохранены в моей базе данных, а также обновленные данные появятся в моем listview?


Частная суб методе button2_click(отправителя как объект, а равно EventArgs) обрабатывает элемент button2.Нажмите
Дим mycomboentry как поле со списком() = новый элемент управления ComboBox() {Comboentry1, Comboentry2, Comboentry3, Comboentry4, Comboentry5, Comboentry6}
Дим mycombotitle как поле со списком() = новый элемент управления ComboBox() {Combotitle1, Combotitle2, Combotitle3, Combotitle4, Combotitle5, Combotitle6}
Дим mytxtquan как TextBox() = новое текстовое окно() {txtquan1, txtquan2, txtquan3, txtquan4, txtquan5, txtquan6}
Дим mytxtprice как TextBox() = новое текстовое окно() {txtprice1, txtprice2, txtprice3, txtprice4, txtprice5, txtprice6}
Дим mytxtamount как TextBox() = новое текстовое окно() {txtamount1, txtamount2, txtamount3, txtamount4, txtamount5, txtamount6}
Тусклый результат в виде целого числа = MessageBox.Show("вы уверены, что хотите обновить?", "Salesbook", MessageBoxButtons.YesNoCancel)
Мыши listview1.Свойство selecteditems.Четкий()
соединять()
If result = DialogResult.Тогда Отмените
Ящик для сообщений.Показать("отмена нажата")
ElseIf result = DialogResult.Не То
Ящик для сообщений.Показать("Нет нажата")

ElseIf result = DialogResult.Тогда Да
Попробуй

command = New MySqlCommand("UPDATE tblsalesbook SET Date_Ordered='" & DateTimePicker1.Текст &ампер; "', Customer_Name='" &амп; текстовое поле textbox1.Текст &ампер; "' , запись='" &амп; mycomboentry(счетчик).Текст & "', Account_Title='" & mycombotitle(счетчик).Text & "', Quantity='" & mytxtquan(счетчик).Текст & "', Unit_Price='" & mytxtprice(счетчик).Text & "', Amount='" & mytxtamount(счетчик).Текст &ампер; "' где Sales_Invoice='" &амп; поле textbox2.Текст &ампер; "' )", стрсоедин)
команда.Метода executereader()
fillListview()

Поймать ex как исключение
разъединять()

Конец Попытки
Ящик для сообщений.Показать("успешно обновлено!")
Конец, Если


Конец Подводной Лодки

Что я уже пробовал:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       Dim mycomboentry As ComboBox() = New ComboBox() {Comboentry1, Comboentry2, Comboentry3, Comboentry4, Comboentry5, Comboentry6}
       Dim mycombotitle As ComboBox() = New ComboBox() {Combotitle1, Combotitle2, Combotitle3, Combotitle4, Combotitle5, Combotitle6}
       Dim mytxtquan As TextBox() = New TextBox() {txtquan1, txtquan2, txtquan3, txtquan4, txtquan5, txtquan6}
       Dim mytxtprice As TextBox() = New TextBox() {txtprice1, txtprice2, txtprice3, txtprice4, txtprice5, txtprice6}
       Dim mytxtamount As TextBox() = New TextBox() {txtamount1, txtamount2, txtamount3, txtamount4, txtamount5, txtamount6}
       Dim result As Integer = MessageBox.Show("Are you sure you want to update?", "Salesbook", MessageBoxButtons.YesNoCancel)
       ListView1.SelectedItems.Clear()
       connect()
       If result = DialogResult.Cancel Then
           MessageBox.Show("Cancel pressed")
       ElseIf result = DialogResult.No Then
           MessageBox.Show("No pressed")

       ElseIf result = DialogResult.Yes Then
           Try

               command = New MySqlCommand("UPDATE tblsalesbook SET Date_Ordered='" & DateTimePicker1.Text & "', Customer_Name='" & TextBox1.Text & "' , Entry='" & mycomboentry(counter).Text & "', Account_Title='" & mycombotitle(counter).Text & "', Quantity='" & mytxtquan(counter).Text & "', Unit_Price='" & mytxtprice(counter).Text & "', Amount='" & mytxtamount(counter).Text & "' WHERE Sales_Invoice='" & TextBox2.Text & "' )", connectstring)
               command.ExecuteReader()
               fillListview()

           Catch ex As Exception
               disconnect()

           End Try
           MessageBox.Show("Successfully updated!")
       End If


   End Sub

1 Ответов

Рейтинг:
0

Patrice T

command = New MySqlCommand("UPDATE tblsalesbook SET Date_Ordered='" & DateTimePicker1.Text & "', Customer_Name='" & TextBox1.Text & "' , Entry='" & mycomboentry(counter).Text & "', Account_Title='" & mycombotitle(counter).Text & "', Quantity='" & mytxtquan(counter).Text & "', Unit_Price='" & mytxtprice(counter).Text & "', Amount='" & mytxtamount(counter).Text & "' WHERE Sales_Invoice='" & TextBox2.Text & "' )", connectstring)

Не решение вашего вопроса, а еще одна проблема, которая у вас есть.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь к уязвимости под названием "SQL-инъекция", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа выйдет из строя. Если пользователь вводит имя, например "Брайан О'Коннер", может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция - Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL-инъекция - руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL - OWASP[^]