How to update with TableAdapter?

2019-06-25 01:12发布

问题:

I'm writing a program in WindowsApplication which use database. I display the database values with DataGridView. Currently, I want that there would be a possibility to update the database through the DataGridView, therefore I wrote this code:

    private void MainForm_Load(object sender, EventArgs e)
    {
        // TODO: This line of code loads data into the 'databaseDataSet1.products' table. You can move, or remove it, as needed.
        this.productsTableAdapter1.Fill(this.databaseDataSet1.products);
    }

    private void upButton1_Click(object sender, EventArgs e)
    {
        this.productsTableAdapter1.Update(this.databaseDataSet1.products);
        MessageBox.Show("הנתונים עודכנו בהצלחה!");
    }

The problem is that there is no update of the values into the database. I'll be happy if someone could help me solve this problem, or even better, explain how to work with DataGridView, because I haven't found anything useful on the internet.

回答1:

        this.Validate();
        this.productsBindingSource.EndEdit();
        this.productsTableAdapter1.Update(this.databaseDataSet1.products);
        //this.productsTableAdapter1.UpdateAll(this.databaseDataSet1);


回答2:

assuming you fill the datagridview with a DataTable and a DataAdapter you could do the following:

private void SaveChanges()
{
    try
    {
        if (sqlDataAdapter != null && dataTable.GetChanges() != null)
            sqlDataAdapter.Update(dataTable);
    }
    catch (Exception exception)
    {
        MessageBox.Show(exception.Message);
    }
}

This would auto-generate any insert, update or delete statements needed to update your database according to your DataTable



回答3:

You should bind the datagridview to DataTable or BindingList object because they are observable.