从子表单更新数据库后刷新datagridview win表单

时间:2012-06-04 21:21:37

标签: c# datagridview dataset dataadapter

如何在从其他表单对数据库进行更改后刷新datagridview, 关闭子窗体后,我尝试使用click事件刷新datagridview但是它不起作用,我是否必须使用数据集?

            //create an OleDbDataAdapter to execute the query
            dAdapter = new OleDbDataAdapter(gQuery, connString);

            //create a command builder
            cBuilder = new OleDbCommandBuilder(dAdapter);

            //create a DataTable to hold the query results
            dTable = new DataTable();

            //fill the DataTable
            dAdapter.Fill(dTable);


            //BindingSource to sync DataTable and DataGridView
            bSource = new BindingSource();

            //set the BindingSource DataSource
            bSource.DataSource = dTable;


            //set the DataGridView DataSource
            dataGridView1.DataSource = bSource;

    private void button_Refresh_Click(object sender, EventArgs e)
    {

        dataGridView1.DataSource = bSource;
        dataGridView1.Refresh();


    }

请帮助我,请提前致谢

4 个答案:

答案 0 :(得分:8)

添加

dataGridView1.Update();

它将解决您的问题。

答案 1 :(得分:5)

当您将数据库与DataGridView属性中的“DataSource”链接时,IDE会自动将BindingSource和TableAdapter添加到表单中。

如果更新了数据库并且您想刷新DataGridView,请调用:

this.<table name>TableAdapter.Fill(this.<DB name>DataSet.<table name>);

其中<table name>是表的名称(例如用户),<DB name>是数据库的名称(例如MyDB)。

this.UsersTableAdapter.Fill(this.MyDBDataSet.Users);

答案 2 :(得分:0)

你试过吗

dataGridView1.DataSource = dTable;

答案 3 :(得分:0)

 bSource.DataSource = dTable;
 dataGridView1.DataSource = bSource;

如果你想起你的桌子会更好