2016-03-25 2 views
0

Когда я добавляю новую строку в свой набор данных, она видна в этой конкретной форме в datagridview, однако, когда я переключаюсь на другую форму с тем же самым привязанным к данным datagridview, новой строки нет. Когда я закрываю программу, моя новая строка полностью исчезнет. Я хочу сохранить новую строку в базе данных Access, из которой она читается.Изменения в наборе данных не сохраняются

Public Class frmAddStudent 




Private Sub btnBack_Click(sender As Object, e As EventArgs) Handles btnBack.Click 
    Me.Hide() 
    frmUserControls.Show() 
End Sub 

Private Sub frmAddStudent_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    'TODO: This line of code loads data into the 'StudentRecords1DataSet.tblLecturer' table. You can move, or remove it, as needed. 
    Me.TblLecturerTableAdapter.Fill(Me.StudentRecords1DataSet.tblLecturer) 
    'TODO: This line of code loads data into the 'StudentRecords1DataSet.tblStudents' table. You can move, or remove it, as needed. 
    Me.TblStudentsTableAdapter.Fill(Me.StudentRecords1DataSet.tblStudents) 

End Sub 

Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click 

    Dim MyNewRow As DataRow 
    MyNewRow = StudentRecords1DataSet.tblStudents.NewRow 



    Try 

     With MyNewRow 
      .Item(1) = txtID.Text 
      .Item(2) = txtFirstName.Text 
      .Item(3) = txtSurname.Text 


     End With 



     Me.Validate() 
     Me.TblStudentsBindingSource.EndEdit() 'Change this to your binding source ' eg table' 
     Me.TableAdapterManager.UpdateAll(Me.StudentRecords1DataSet) ' chnage this to your database name' 
     MessageBox.Show("The Data Has Been Saved", "Information", MessageBoxButtons.OK) 
    Catch ex As Exception 
     'if there is a problem saving the data, it will show a messagebox with the problem as to why it could'nt save the data' 
     MessageBox.Show(ex.Message) 
    End Try 

    StudentRecords1DataSet.tblStudents.Rows.Add(MyNewRow) 
    StudentRecords1DataSet.tblStudents.AcceptChanges() 

End Sub 

Private Sub txtFirstName_MaskInputRejected(sender As Object, e As MaskInputRejectedEventArgs) 

End Sub 

Private Sub TblStudentsBindingNavigator_RefreshItems(sender As Object, e As EventArgs) Handles TblStudentsBindingNavigator.RefreshItems 

End Sub 

End Class

Любые предложения, пожалуйста?

+0

вы добавили базу данных доступа к вашему проекту? – Werdna

+0

@Werdna ye, доступ db добавляется через функцию «Добавить новый источник данных» – Donncha

+0

и вам просто нужна кнопка для сохранения базы данных? – Werdna

ответ

1

UPDATe X2 основывается на вашем обновлении вопроса. попробовать это,

Public Class frmAddStudent 


Private Sub btnBack_Click(sender As Object, e As EventArgs) Handles btnBack.Click 
    Me.Hide() 
    frmUserControls.Show() 
End Sub 

Private Sub frmAddStudent_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    'TODO: This line of code loads data into the 'StudentRecords1DataSet.tblLecturer' table. You can move, or remove it, as needed. 
    Me.TblLecturerTableAdapter.Fill(Me.StudentRecords1DataSet.tblLecturer) 
    'TODO: This line of code loads data into the 'StudentRecords1DataSet.tblStudents' table. You can move, or remove it, as needed. 
    Me.TblStudentsTableAdapter.Fill(Me.StudentRecords1DataSet.tblStudents) 

End Sub 

Private Async Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click 

    Try 
     Me.Validate() 
     Me.TblStudentsBindingSource.EndEdit() 'Change this to your binding source ' eg table' 
     Me.TableAdapterManager.UpdateAll(Me.StudentRecords1DataSet) ' chnage this to your database name' 
     MessageBox.Show("The Data Has Been Saved", "Information", MessageBoxButtons.OK) 
     Await Task.Delay(100) 
     TblStudentsBindingNavigator_RefreshItems.studentsBindingSource.AddNew() 
    Catch ex As Exception 
     'if there is a problem saving the data, it will show a messagebox with the problem as to why it could'nt save the data' 
     MessageBox.Show(ex.Message) 
    End Try 

End Sub 

Private Sub txtFirstName_MaskInputRejected(sender As Object, e As MaskInputRejectedEventArgs) 

End Sub 

Private Sub TblStudentsBindingNavigator_RefreshItems(sender As Object, e As EventArgs) Handles TblStudentsBindingNavigator.RefreshItems 

End Sub 

End Class

+0

Я добавил в это Try Catch, однако у меня все еще есть такая же проблема с данными, которые не сохраняются на моем дб. Появляется окно с сообщением о сохранении данных, но строки фактически не сохранены. – Donncha

+0

можете ли вы добавить ко всему свой код на свой вопрос? проблема должна быть в другом месте, да, она будет сохранена, если база данных не была настроена правильно. – Werdna

+0

Полный код формы, добавленный в вопрос – Donncha

Смежные вопросы