В моей программе у меня есть функция под названием runSQL, здесь:Получив сообщение об ошибке при попытке обновить запись
Dim Connection As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=TrainingLog.accdb")
Dim DT As New DataTable
Dim DataAdapter As OleDb.OleDbDataAdapter
Connection.Open()
DataAdapter = New OleDb.OleDbDataAdapter(query, Connection)
DT.Clear()
DataAdapter.Fill(DT)
Connection.Close()
Return DT
И я пытаюсь обновить запись в базе данных, используя строку обновления, получено из этого кода:
Dim sqlString As String
sqlString = "UPDATE UserRecords set FirstName = '" & txtName.Text
sqlString = sqlString & "', LastName = '" & txtSurname.Text
If ChkSmoker.Checked = True Then
sqlString = sqlString & "', Smoker = true"
ElseIf ChkSmoker.Checked = False Then
sqlString = sqlString & "', Smoker = false"
End If
sqlString = sqlString & ", Weight = " & txtWeight.Text
If RdoMale.Checked = True Then
sqlString = sqlString & ", Gender = 'm'"
ElseIf RdoFemale.Checked = True Then
sqlString = sqlString & ", Gender = 'f'"
End If
sqlString = sqlString & " WHERE UserName = '" & LstUsers.SelectedItem.ToString & "'"
runSQL(sqlString)
Однако когда я нажимаю на кнопку сохранить, я получаю сообщение об ошибке от линии 7 функции runSQL (не включая пустую строку, так что это DataAdapter.Fill (DT) линия), которая говорит «Нет значения для одного или нескольких требуемых параметров».
Я задавался вопросом, знал ли кто-нибудь, почему это так или как его исправить.
Одна вещь, о которой я думал, заключается в том, что в обновляемой таблице есть поля, отличные от тех, которые упоминаются в моей инструкции UPDATE. Например, есть поле «Да/Нет» под названием «TeamMember», о котором я не упоминаю в инструкции обновления. При использовании функции обновления мне нужно давать значения для каждого поля, даже те, которые не меняются?
Спасибо за чтение и, надеюсь, помощь!
Вы используете TSQL? – Hockenberry
Честно говоря, я не знаю. Я просто изучаю Visual Basic в школе, и мне сказали, что части SQL использовать, а не учили их. – DatBrummie
Вы действительно посмотрели на инструкцию SQL, которую генерирует весь этот код? Это было бы первым делом, чтобы посмотреть, будет ли это то, что вы ожидаете. Если вы посмотрели, пожалуйста, сообщите нам, что вы видите. – jmcilhinney