Итак - у меня есть база данных MySQL с одной служащей таблицей, использующая Devart Linq to SQL (для MySQL). У нее есть первичный ключ в DataContext, я могу загрузить gridview, выбрать строку, установить экземпляр Staff = вИдентификатор и Имя или строка, выбранная в виде сетки, устанавливают текстовое поле = Имя персонала, изменяют текстовое поле и задают для объекта Staff.Name текстовое поле .....
, но я не могу отправить изменение обратнов БД !!!!Наверное, глупость, которую я делаю новичком.
Public Class Form1
Dim db As New MydbContext.MydbDataContext
Dim bs = New BindingSource
Dim Staff As New MydbContext.Employee
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' load employee data from MySQL db in datagrid
Dim StaffQuery = From s In db.Employees Select s
bs.DataSource = StaffQuery
DataGridView1.DataSource = bs
' this works fine
End Sub
Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
'create an instance of the object Staff with the ID and Name from the datagrid
'is there a better way to do this?
Staff.EmployeeID = DataGridView1.Rows(e.RowIndex).Cells("EmployeeID").Value
Staff.Name = DataGridView1.Rows(e.RowIndex).Cells("Name").Value
MsgBox(Staff.EmployeeID & " " & Staff.Name)
TextBox1.Text = Staff.Name
'this works fine
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Staff.Name = TextBox1.Text 'edit the Name
MsgBox(Staff.EmployeeID & " " & Staff.Name) ' this works - shows new Staff.Name from textbox
db.SubmitChanges() ' this fails to make db changes
End Sub
End Class