先看一段代码:
if (ValidateInsert())
{
if (biz.InsertAccount(……))//A
{
DataTable dtInserted = biz.FillAccountTable();
dataGridView1.DataSource=dtInserted;//B
}
else
{
MessageBox.Show("……");
}
}
在A那个地方,数据已经成功添加到表中了(打开数据库查看过)
通过FillAccountTable,得到了表中的全部数据
但是,在B执行了以后,DataGridView中并没有显示刚刚添加的行,如果再添加一条数据,可以把前面添加的一条数据显示出来,为什么啊?
if (ValidateInsert())
{
if (biz.InsertAccount(……))//A
{
DataTable dtInserted = biz.FillAccountTable();
dataGridView1.DataSource=dtInserted;//B
}
else
{
MessageBox.Show("……");
}
}
在A那个地方,数据已经成功添加到表中了(打开数据库查看过)
通过FillAccountTable,得到了表中的全部数据
但是,在B执行了以后,DataGridView中并没有显示刚刚添加的行,如果再添加一条数据,可以把前面添加的一条数据显示出来,为什么啊?
解决方案 »
- 我感觉异步执行的回调函数没啥用
- 求msn发信息代码
- sendmessage() 怎么其他窗体发送快捷键ya ?
- 有关mobile的问题,具体还是请大家进到里面看问题,这里说不清楚,谢谢
- 如何让 textBox 变成密码模式,输入字符为 * 号
- 高分求救,关于dropdownlist的问题,在线等待中,帮顶有分
- 在线求助,如何实现一个窗体中多次打开另一个窗体
- c# 字符串截取问题,取出特定的字符串
- 关于DEV里的chartcontrol的pie图
- 如何编程实现将两个WAV文件合并?
- 如何在Application中每隔10个小时运行一个操作
- 请问如何让datagrid中的DropDownList显示数据库中指定数据
是这样的,biz这个对象一直是存在的,在数据处理类里面Insert函数虽然把数据写入了表,但是内存里的datatable还是老的,重新"select * from ……"也没用(不知道为什么)
这样我只能新建了一个函数
private void commit(){
Conn.close();
Conn.open();
}
这样可以成功,但是有点傻啊,有没有别的办法
dataGridView1.DataSource=dtInserted.defaultView;
DataSoure一般都用视图吧。