Надеюсь, что кто-то может предложить какие-то предложения по этому поводу, надеюсь, это простое исправление. Есть 2 проблемы:
- У меня есть представление сетки данных в VB. NET и бит, который я застрял, когда вы щелкаете строку, чтобы обновить ее, а затем с кодом I Я не могу сослаться на существующий уникальный идентификатор из таблицы SQL в моем коде, чтобы обновить его, вместо этого я получаю обновленную строку как новую строку с новым идентификатором и обновленными данными.
Экспериментируя, я использовал новый Guid.NewGuid, но, как я уже сказал, я не уверен, как ссылаться на фактический идентификатор из базы данных SQL для обновления этой строки.
Код, который вызывается из кнопки обновления, выглядит следующим образом:
Private Sub UpdateDataToQuery()
Dim MyCmd As New SqlCommand()
Dim da As New SqlDataAdapter()
Dim myTable As New DataTable()
Dim sSQL As String = String.Empty
'Reference the Opened connection from other conn call and load update query
myConn.Open()
MyCmd.Connection = myConn
MyCmd.CommandType = CommandType.Text
sSQL = "UPDATE MySQlTable1 set myTable.Columns(1).ColumnName = @InputDate,
myTable.Columns(2).ColumnName = @staffMember, myTable.Columns(3).ColumnName = @Band,
myTable.Columns(4).ColumnName = @Defecit, myTable.Columns(5).ColumnName = @Reason,
myTable.Columns(6).ColumnName = @ward, myTable.Columns(7).ColumnName = @AuthoriserName5,
myTable.Columns(8).ColumnName = @AuthoriserName6 WHERE OT_ID = @guidValue"
MyCmd.CommandText = sSQL
da.SelectCommand = MyCmd
da.Fill(myTable) **<<<< Error here Incorrect syntax near '.'**
'Parameters for update query
MyCmd.Parameters.AddWithValue("@guidValue", Guid.NewGuid)
MyCmd.Parameters.AddWithValue("@InputDate", DateTimePicker1.Value)
MyCmd.Parameters.AddWithValue("@staffMember", ComboBox1.GetItemText(ComboBox1.SelectedItem))
MyCmd.Parameters.AddWithValue("@Ward", ComboBox2.GetItemText(ComboBox2.SelectedItem))
MyCmd.Parameters.AddWithValue("@Defecit", ComboBox3.GetItemText(ComboBox3.SelectedItem))
MyCmd.Parameters.AddWithValue("@Reason", ComboBox4.GetItemText(ComboBox4.SelectedItem))
MyCmd.Parameters.AddWithValue("@Band", ComboBox5.GetItemText(ComboBox5.SelectedItem))
MyCmd.Parameters.AddWithValue("@AuthoriserName5", ComboBox6.GetItemText(ComboBox6.SelectedItem))
MyCmd.Parameters.AddWithValue("@AuthoriserName6", ComboBox7.GetItemText(ComboBox7.SelectedItem))
MyCmd.ExecuteNonQuery()
End Sub
Я также теперь получаю сообщение об ошибке
некорректный синтаксис рядом с '.' , чего раньше никогда не было, я не знаю, чем это вызвано. Я подозреваю, что с оператором SQL возникла какая-то проблема, поскольку я изначально имел его с линиями перегиба, поэтому я мог видеть его в окне кода, а затем возник неправильный синтаксис рядом с '&'. Я удалил их и поместил код в одну строку, и теперь он дает другую ошибку.
Итак, как я уже сказал, он выполнялся раньше без ошибок, теперь он получает указанную выше ошибку в da.fill (MyTable) также будут полезны любые указатели на очевидную ошибку (пункт 2).
Спасибо за любые предложения.