问题:重定义了DataGridView的DataSource,但是新建的行并没有显示出来

doocoo 2006-09-05 12:03:37
先看一段代码:
if (ValidateInsert())
{
if (biz.InsertAccount(……))//A
{
DataTable dtInserted = biz.FillAccountTable();
          dataGridView1.DataSource=dtInserted;//B
}
else
{
MessageBox.Show("……");
}
}
在A那个地方,数据已经成功添加到表中了(打开数据库查看过)
通过FillAccountTable,得到了表中的全部数据
但是,在B执行了以后,DataGridView中并没有显示刚刚添加的行,如果再添加一条数据,可以把前面添加的一条数据显示出来,为什么啊?
...全文
354 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
doocoo 2006-09-05
  • 打赏
  • 举报
回复
已经解决了,不过应该还有更好的办法
是这样的,biz这个对象一直是存在的,在数据处理类里面Insert函数虽然把数据写入了表,但是内存里的datatable还是老的,重新"select * from ……"也没用(不知道为什么)
这样我只能新建了一个函数
private void commit(){
Conn.close();
Conn.open();
}
这样可以成功,但是有点傻啊,有没有别的办法
hy_lihuan 2006-09-05
  • 打赏
  • 举报
回复
你datagrid绑定了没有啊?
爱在深秋2008 2006-09-05
  • 打赏
  • 举报
回复
好象这样吧。
dataGridView1.DataSource=dtInserted.defaultView;
DataSoure一般都用视图吧。
namhyuk 2006-09-05
  • 打赏
  • 举报
回复
vs2005的话,还是推荐使用BindingSource。

BindingSource有个AddNew()方法,AddNew()时会自动触发BindingSource.AddingNew事件,在该事件代码里增加数据行。AddNew()方法会自动提交更新到基础数据表。

也许和楼主的问题不太相关,但还是参考一下吧~

110,534

社区成员

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

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

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