datagridview不能刷新问题--winform

toploveall 2011-04-14 08:35:47
有两个winform窗体
一个窗体有个DataGridView控件和一个“新增”按钮,DataGridView有两列(姓名、年龄)。从数据库中取值并显示。
另一个窗体有两个文本框(姓名、年龄)和一个保存按钮,此窗体用于将数据插入数据库中,并在第一个窗体中显示。(此窗体能正常插入数据。)

请问,怎么将第二个窗体保存的数据及时更新到第一个窗体上。


Form1:
private void Form1_Load(object sender, EventArgs e)
{
Initalize();
}
public void Initalize()
{
string str = @"select UserName 姓名,UserAge 年龄 from TEST";
DataTable dt = OracleHelper.ExecuteDataTable(CommandType.Text, str);
this.ucGrid1.DataSource = dt;
this.ucGrid1.DataBind();
}



Form2:
private void btnSave_Click(object sender, EventArgs e)
{
try
{
int flag = InsertData();
if (flag > 0)
{
MessageBox.Show("插入成功");

new Form1().Initalize();//在此处设断点,可以跟踪到Form1中的dt是变化了的,就是不能及时更新ucGrid1
}
else
{
MessageBox.Show("插入失败");
}

}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}

private int InsertData()
{
string insertText = @"insert into TEST(username,userage)
values(:username,:userage)";

OracleParameter[] parm ={
new OracleParameter(":username",this.txtName.Text),
new OracleParameter(":userage",Convert.ToInt32(txtAge.Text.Trim()))
};

int flag = OracleHelper.ExecuteNonQuery(insertText, parm);

return flag;
}


请高手指点。谢谢。

...全文
177 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
isjoe 2011-04-15
  • 打赏
  • 举报
回复
读取数据库DataTable ,将此DT绑定到两个BindingSource组件,用于分别绑定到两个DataGrid上
这样无论你修改哪一个窗口上的数据,两个DataGrid将同步
foxd 2011-04-15
  • 打赏
  • 举报
回复
重新绑定
xuzysun 2011-04-15
  • 打赏
  • 举报
回复
在第二个窗体中,为第一窗体Initalize()定义委托代理,在保存时调用。
effun 2011-04-15
  • 打赏
  • 举报
回复
或者用同一个BindingSource。
余山水 2011-04-14
  • 打赏
  • 举报
回复
第二个窗体保存后,发送事件,第一个窗体接受事件并刷新

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧