两个窗口之间dataGrid更新问题

curd0468 2006-12-14 04:16:43
有两个窗口,Form1和Form2
Form1中有个datagrid1绑定到一个数据库表
现在我在Form2中添加了一行数据到该数据库表,我在点击了添加按钮后如何才能让Form1中的dataGrid1自动更新呢?
我写的代码是这样的,但是却不起作用

private void btn_add_Click(object sender, System.EventArgs e)
{
addInfomation();\\此处添加数据到数据库,省略

DataBindingdata();

MessageBox.Show("添加记录成功");
}
private void DataBindingdata()
{
String Ole = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Client.mdb;";
OleDbConnection conn = new OleDbConnection(Ole);
String Olecmd = "* FROM author ORDER BY id";
conn.Open();
DataTable tempTable = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(Olecmd,conn);
da.Fill(tempTable);
conn.Close();
DataView dv = new DataView(tempTable);
Form1 er = new Form1();//在这里绑定到Form1中dataGrid1
er.dataGrid1.DataSource = dv;
}
...全文
206 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
curd0468 2006-12-14
  • 打赏
  • 举报
回复
搞定了,刚出晕头了,引用后居然没有引用绑定方法.
非常感谢colaxu(飞翔) .我这小菜又学到东西了
colaxu 2006-12-14
  • 打赏
  • 举报
回复
你跟踪一下 er.dataGrid1.DataSource = dv; 的时候dv里面数据。有没有你add的数据存在.
curd0468 2006-12-14
  • 打赏
  • 举报
回复
用了你的办法,很遗憾,还是不行
colaxu 2006-12-14
  • 打赏
  • 举报
回复
public Form2(Form1 fm)
{
//要包含不带参数的构造函数的内容.
......
er = fm;
}
colaxu 2006-12-14
  • 打赏
  • 举报
回复
Form2中,定义为一个全局的 private 就ok了.
curd0468 2006-12-14
  • 打赏
  • 举报
回复
colaxu(飞翔),你的er在哪里定义的?
curd0468 2006-12-14
  • 打赏
  • 举报
回复
您这个办法在别的地方可能适用,但我这个有点不一样
刚才我贴代码的时候为了省事,用String Olecmd = "select * FROM author ORDER BY id";来选择数据库了,实院上是"select [id] as [编号],[name] as [姓名]..."等,在dataGrid1里我并没有把所有的数据列都显示出来,但添加的时候必须要全部加了.这样用您的办法,我就没法添加dataGrid1里没有有列了
colaxu 2006-12-14
  • 打赏
  • 举报
回复
这里有问题.
Form1 er = new Form1();//在这里绑定到Form1中dataGrid1

1.在Form1调用Form2时,把"this"做为一个参数传递过去.

2.在Form2的中定义一个 Form1 er = null.定义一个带参数的构造函数
public Form2(Form1 fm)
{
er = fm;
}
3.删除 Form1 er = new Form1();//在这里绑定到Form1中dataGrid1 试试
Knight94 2006-12-14
  • 打赏
  • 举报
回复
大致的步骤如下:
1、在打开form2的是否,先获取form1中datagrid的数据源,即DataTable;
2、在form2中,通过DataTable进行添加新记录的操作;
3、通过DataTable来更新数据库,从而达到数据库的更新操作。

ps:至于form1的Datagrid会自动更新,因此不用作多余的操作。
curd0468 2006-12-14
  • 打赏
  • 举报
回复
一楼的办法不行
二楼可能是我没明白你的意思,你能贴出代码吗?
Knight94 2006-12-14
  • 打赏
  • 举报
回复
在form2中通过form1中Datagrid绑定的数据源进行添加,这里一方面更新绑定的数据源,一方面更新数据库。
alvachien 2006-12-14
  • 打赏
  • 举报
回复
一个简单的方法是把er.dataGrid1.DataSource再设置一次

er.dataGrid1.DataSource = null; //首先要清空一下
er.dataGrid1.DataSource = dv;

110,535

社区成员

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

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

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