用三层架构做的程序,在UI层修改完表后显示在dataGrid上的内容没有把原来的表中的内容删除!

来源:百度知道 编辑:UC知道 时间:2024/07/07 04:20:59
代码是
user.updateBuilding2();
dataGrid1.DataSource=null; dataGrid1.DataSource=user.selectBuilding2();
MessageBox.Show("修改成功!");
这是UI层的代码!
当修改完之后,dataGrid上的内容没有把原来为修改的表的内容显示了上去,也就是说显示了这个表中内容显示了两遍!
dataGrid里面没有GridView1.DataSourceID 啊,没这个属性也没这个事件!我用了dataGrid1.DataSource=null;可是不管用啊,执行dataGrid1.DataSource=user.selectBuilding2(); 在dataGrid1里面还是显示两遍表中 的内容!
dataGrid1有DataBind()这个方法吗?我不知道你用的是什么,我说的是在winform下,用的是c#语言!
我的数据是存在数据库中,当改变dataGrid1里面的内容时,数据库中已经改变了,可就是dataGrid1上好像是又从数据库中取了一遍改过的数据,但是先前没有被改的数据依然存在与dataGrid1中!

看你的数据库 内容是什么 如果是2遍 就不是页面的问题 ,如果数据库里面是一遍 那么要清空下你的 dataGrid1里面内容
GridView1.DataSourceID = null;
dataGrid1.DataSource=user.selectBuilding2();

我测试了一下 dataGrid 改变数据源后不会显示重复内容 可能是你的数据有重复内容
另外 dataGrid 在改变数据源后应重新绑定
DataGrid1.DataBind();
如果你重新绑定后 仍然出现重复显示情况 估计就是你获取数据时数据重复了
user.updateBuilding2();
dataGrid1.DataSource=user.selectBuilding2();
dataGrid1.DataBind();
MessageBox.Show("修改成功!");
------------------------------------------------------
winform 下 测试 直接改变数据源 数据即发生变化,不会产生重复数据问题

猜测你的数据可能出现了重复

试试调试你的数据

------------------------------------------------

你试试再放一个 DataGrid 在上面测试下数据
DataTable dt = user.selectBuilding2();
dataGrid1.DataSource=dt;

dataGrid2.DataSource=dt;
//或者用DataSet 我感觉就是你的selectBuilding2返回的数据出现重复

加油

e