如何刷新数据网格
本文关键字:数据 数据网 网格 刷新 何刷新 | 更新日期: 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之前清除dTable
和dataGridView1.DataSource
dTable = new DataTable();
dataGridView1.DataSource = nothing;