Reload data using TableAdapter

14,982

Solution 1

First, I would move the Fill to a separate function:

public void LoadData()
{
   this.usersTableAdapter.Fill(this.workOrdersDataSet.users);
}

Then when you do your Load Event, you will call the function:

private void UserList_Load(object sender, EventArgs e)
{
   LoadData();
}

If you have another form that performs changes on the data, you can call this function in another event, similar to this. I use DialogResult in my code:

private void OpenOtherForm()
{
    DialogResult openForm = new OtherForm().ShowDialog();
    if(openForm == DialogResult.OK)
        LoadData();
}

In your code for the other Form after your update process is complete, include a line of code to tell your main form to update:

private void PerformUpdate()
{
    try
    {
        // your update code goes here
        DialogResult = DialogResult.OK; // this is the line that tells your other form to refresh
    }
    catch (Exception ex)
    {
        DialogResult = DialogResult.Abort;
    }
}

using the DialogResult then, tells your main form to trigger the Refresh of the Data only when an Update actually takes place.

Solution 2

You can add this line into another function, say

public void MoveDataToUI()
{
   this.usersTableAdapter.Fill(this.workOrdersDataSet.users);
}

and after call this function from the even handler, which is raised when someone changes something in another form.

Events tutorial

Share:
14,982
Cocoa Dev
Author by

Cocoa Dev

Updated on June 04, 2022

Comments

  • Cocoa Dev
    Cocoa Dev almost 2 years
    private void UserList_Load(object sender, EventArgs e)
    {
        // TODO: This line of code loads data into the 'workOrdersDataSet.users' table. You can move, or remove it, as needed.
        this.usersTableAdapter.Fill(this.workOrdersDataSet.users);
    }
    

    How can I reload the data if changes were made in another form? (preferably automatically without using a Refresh button)?

    I am using WinForms and the backend is Access 2007.

    The data is bound using the Designer to a Datagrid

  • Cocoa Dev
    Cocoa Dev about 12 years
    I did your recommendation but the DataGridView did not update. My button code says private void buttonNewUser_Click(object sender, EventArgs e) { //NewUserForm nuf = new NewUserForm(); //nuf.Show(); OpenOtherForm(); }
  • Taryn
    Taryn about 12 years
    on your other form are you using the DialogResult?
  • shawn
    shawn over 9 years
    Im trying to clear the table to refresh the data grid Im using sqldata adapter and dataset with binding I can load the data but when I add new data to the datatable I need to refresh so it shows the new data being added I tried Dataset.Clear(); then after that I put DataAdapter.Fill(Dataset) the dataGrid is using the datamember and datasource bindings in the visual studio but that method is not working why it works, it should using Oledb but im using SQL Oledb
  • Taryn
    Taryn over 9 years
    @shawn I'd suggest posting a new question with your code and include any errors, etc you are getting.