ОК, поэтому у меня есть форма, называемая quote_guidelines, и я хотел бы использовать процедуру для обновления моей базы данных значениями, введенными в форму quote_guidelines. Значения - это описания и стоимость украшений, продуктов питания/напитков и развлечений. Каждой вкладке назначается один из этих дополнительных сервисов. Я хотел бы сделать процедуру, которая будет обновлять базу данных этими новыми значениями. Проблема заключалась в том, что запрос должен содержать другую таблицу и разные имена текстовых полей. Я попытался решить эту проблему, сохранив имена таблиц и текстовых полей в переменных, которые затем будут переданы в процедуру.VB.NET использовать переменную в текстовом поле
переменная таблицы отлично работает в инструкции sql, но имена текстовых полей не используются. Я попытался это:
quote_guidelines.Controls(description_textbox).Text
Но это не работает.
Вот мой запрос:
query = "UPDATE " & additional & " SET description='" & quote_guidelines.Controls("" & description_textbox & "").Text & "', cost= " & quote_guidelines.Controls("" & cost_textbox & "").Text & " WHERE " & additional & "ID='" & y & "'"
Когда я запускаю программу, я получаю следующее сообщение об ошибке «Необработанное исключение типа„System.NullReferenceException“произошло в EHCC_BookingSystem.exe
Дополнительная информация: В экземпляре объекта не задана ссылка на объект."
Я просто понял, что это может быть какой-то другая глупая ошибка, которую я сделал, так вот вся процедура:
Sub UpdateAdditionals(textbox3 As System.Object, textbox4 As System.Object, textbox5 As System.Object, textbox6 As System.Object, textbox7 As System.Object, textbox8 As System.Object, ByRef additional As String, ByRef description_textbox As String, ByRef cost_textbox As String)
mysqlconn = New MySqlConnection
mysqlconn.ConnectionString = "Server=localhost;userid=root;password=root;database=comp4"
Dim reader As MySqlDataReader
MsgBox(additional & description_textbox & cost_textbox)
Try
mysqlconn.Open()
Dim query As String
query = "UPDATE " & additional & " SET description='" & quote_guidelines.Controls.Find(description_textbox, True).FirstOfDefault().Text & "', cost= " & quote_guidelines.Controls.Find(cost_textbox, True).FirstOfDefault().Text & " WHERE " & additional & "ID='" & y & "'"
MsgBox(query)
command = New MySqlCommand(query, mysqlconn)
reader = command.ExecuteReader()
mysqlconn.Close()
Catch ex As MySqlException
MessageBox.Show(ex.Message)
Finally
mysqlconn.Dispose()
End Try
End Sub
Если процедура является функцией C#/vb.net, вы можете передать непосредственно объект или объекты TextBox – bdn02
, но имена текстовых полей будут разными в зависимости от того, являются ли это украшениями, едой/напитком или развлечениями, которые я обновляю. – aLeXaNdRa08
Ваш вопрос непонятен ... вы пытаетесь получить управление текстовым полем с помощью '.Controls (controlname)'? что вы имеете в виду, что ** имена текстовых полей не **? – ilans