这里我有一个包含数据网格视图和三个按钮的表单,即编辑,删除和返回。 当我加载表单时,它在数据网格中显示正确的数据,但假设我通过单击编辑或删除按钮来编辑或删除记录,并且在执行这些操作后此表单到达前景时,数据网格视图不是' t显示更新的数据。 欢迎任何帮助..... 注意 - 当我单击编辑或删除按钮时,此表单不会关闭它只是进入后台。 我的代码如下: -
namespace RDASMS
{
public partial class LoginDb : Form
{
DataTable dt = new DataTable();
public LoginDb()
{
InitializeComponent();
}
//OleDbConnection vcon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\workspace\RDASMS\RDASMS\rdadb.mdb");
public Form ReferToAdmin
{
get;
set;
}
private void LoginDb_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'rdadbDataSet1.login' table. You can move, or remove it, as needed.
// this.loginTableAdapter.Fill(this.rdadbDataSet1.login);
// TODO: This line of code loads data into the 'rdadbDataSet.login' table. You can move, or remove it, as needed.
//this.loginTableAdapter.Fill(this.rdadbDataSet.login);
MyOleDbConnection.Open();
DataSet ds = new DataSet();
//DataTable dt = new DataTable();
ds.Tables.Add(dt);
OleDbDataAdapter da = new OleDbDataAdapter();
da = new OleDbDataAdapter("select * from login", MyOleDbConnection.vcon);
/*da.Fill(dt);
logindb_dataGridView.DataSource = dt.DefaultView;*/
da.Fill(dt);
logindb_dataGridView.DataSource = dt;
logindb_dataGridView.AutoResizeColumns();
MyOleDbConnection.Close();
}
private void logindb_panel_Paint(object sender, PaintEventArgs e)
{
}
private void logindbback_Click(object sender, EventArgs e)
{
this.Close();
this.ReferToAdmin.Show();
}
private void logindbdelete_Click(object sender, EventArgs e)
{
DeleteRecord dr = new DeleteRecord();
dr.ReferToLogindb = this;
dr.Show();
this.Hide();
}
private void logindbedit_Click(object sender, EventArgs e)
{
EditRecord er = new EditRecord();
er.ReferToLogindb = this;
er.Show();
this.Hide();
}
}
}
答案 0 :(得分:1)
您可以使用表单的“Activated”事件。这样,每次激活表单时(在您的情况下“到达前台”)数据都将更新:
public LoginDb()
{
InitializeComponent();
this.Activated += new EventHandler(LoginDb_Activated);
}
void LoginDb_Activated(object sender, EventArgs e)
{
this.BindData();
}
private void BindData()
{
MyOleDbConnection.Open();
DataSet ds = new DataSet();
//DataTable dt = new DataTable();
ds.Tables.Add(dt);
OleDbDataAdapter da = new OleDbDataAdapter();
da = new OleDbDataAdapter("select * from login", MyOleDbConnection.vcon);
/*da.Fill(dt);
logindb_dataGridView.DataSource = dt.DefaultView;*/
da.Fill(dt);
logindb_dataGridView.DataSource = dt;
logindb_dataGridView.AutoResizeColumns();
MyOleDbConnection.Close();
}
请注意,这可能会导致您计划对数据库进行更多调用。您可以通过检查数据是否被操作(使用操纵类的属性)来检查其中一个“编辑按钮”是否被点击,甚至更好,从而避免这种情况。