如何刷新数据网格

本文关键字:数据 数据网 网格 刷新 何刷新 | 更新日期: 2023-09-27 18:11:02

我使用c#作为前端,ms access作为后端

只有当组合框中的索引被更改时,我才显示数据网格

 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        refershGridView(comboBox1.Text);
    }

,但是当我对数据网格进行任何更新时,更新仅在我进行选定的索引更改事件

之后反映。

我尝试了datagidview1.refresh(),也调用了我的refshgridview (comboBox1.Text)函数隐式

但是我的网格视图只有在我选择索引更改时才会刷新

refshgridview (comboBox1.Text)的代码

private void refershGridView(string tableName)
    {
        saveBttnSwitch = 0;//for save button swicth 
        //setting back to intial user interface ..

        clearVisibilty();
        clearall();
        button1.Visible = true;
        button3.Visible = false;
        label11.Visible = false;
        try
        {
            OleDbConnection mycon = new OleDbConnection();
            mycon.ConnectionString = ConnString;
            //create the database query
            string query = null;
            if (tableName == "employee")
            {
                query = "SELECT fname,lname,ssn FROM employee";
                dataGridView1.Visible = true;
            }
            if (tableName == "project")
            {

                query = "SELECT pname,pnumber FROM project";
                dataGridView1.Visible = true;
            }

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

            //create a command builder
            OleDbCommandBuilder cBuilder = new OleDbCommandBuilder(dAdapter);
            //create a DataTable to hold the query results
            DataTable dTable = new DataTable();
            //fill the DataTable
            try
            {
                dAdapter.Fill(dTable);
            }
            catch (OleDbException exp)
            {
                label11.Text = "file couldnt be found...kindly check Db file location ";
                label11.Visible = true;
                button1.Visible = false;
            }
            //  DataGridView dgView = new DataGridView();
            //BindingSource to sync DataTable and DataGridView
            BindingSource bSource = new BindingSource();
            //set the BindingSource DataSource
            bSource.DataSource = dTable;
            //set the DataGridView DataSource
            dataGridView1.DataSource = bSource;
            // dataGridView1.Dock = DockStyle.Fill;
            dataGridView1.AutoGenerateColumns = true;
            mycon.Close();
        }
        catch (System.Data.SqlClient.SqlException ex)
        {
            throw new InvalidOperationException("Data could not be read", ex);
        }
        this.button2.Visible = false;
    }

如何刷新数据网格

refershGridView(comboBox1.Text);是否重新填充DataGrid?

如果是,则从您希望填充数据的任何其他位置调用它。如果组合的SelectedIndexChanged甚至是你唯一填充的地方,它将不会刷新,除非你改变一个选择。

和@Bryan建议的一样,如果我们看到一些代码会更好。

尝试在填充DataTable和设置DataGridView DataSource之前清除dTabledataGridView1.DataSource

dTable = new DataTable();
dataGridView1.DataSource = nothing;