datagridview 数据刷新

iwalk 2009-04-05 02:58:16
vs2008 c# winform应用:

dataGridView绑定一个数据库表的数据,当数据库表中的数据改变之后,如何使dataGridView内容刷新?

我用的的重新绑定的办法,但是我发现dataGridView有时候能刷新,有时候不能。
...全文
4137 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
cind79 2010-09-11
  • 打赏
  • 举报
回复
大家不要讨论了,我遇到一样的问题,我找到问题在哪了,就是要及时将SQlConnection、SqlDataAdapter、sqlCommand、OleDbConnection、OleDbDataAdapter、OleDbCommand等new出来的对象Dispose。例如:
public bool ExecuteNonQuery(string sql)
{
try
{
OleDbConnection odconn = new OleDbConnection(connectionString);
OleDbCommand odcomm = new OleDbCommand(sql, odconn);
odconn.Open();
odcomm.ExecuteNonQuery();
odcomm.Dispose();
odconn.Dispose();
return true;
}
catch (Exception eee)
{
MessageBox.Show(eee.Message);
return false;
}
}
Nokiahc 2009-08-08
  • 打赏
  • 举报
回复
我也正好遇到这个问题了,刚刚才找到解决的办法,在需要更新的地方写上这句就行了:
this.你的TableAdapter.Fill(this.你的DataSet.你的表名);
也就是Form_Load里的那句。
wuyujie1219 2009-08-07
  • 打赏
  • 举报
回复
学习额....
manbu3269 2009-05-10
  • 打赏
  • 举报
回复
先把dataGridview中的数据清空,
在从新调用那个绑定的方法就可以了,用不着再从新绑定一次!
sunny906 2009-04-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 iwalk 的帖子:]
我用的的重新绑定的办法,但是我发现dataGridView有时候能刷新,有时候不能。
[/Quote]
重新绑定应该没有问题
要不你用BindingSource看看:
BindingSource bs = new BindingSource();
bs.DataSource = ds.Tables["表"];
dataGridView1.DataSource = bs.DataSource;
z050301402 2009-04-11
  • 打赏
  • 举报
回复
写一个刷新的方法,当数据改变的时候调用一下刷新方法就OK了

蔡袅 2009-04-11
  • 打赏
  • 举报
回复
你的绑定应该是单独一个窗体里的吧
这样的话是要你重新绑定以后重新加载窗体就可以了
用事件的重复调用 Form1_Load(null,null); //放到重新绑定语句后
十八道胡同 2009-04-06
  • 打赏
  • 举报
回复
学习,帮顶
dk9761 2009-04-06
  • 打赏
  • 举报
回复
不用清空~ 想想都知道~ dataGridView.DataSource 给他复制的是个对象,也就是说给个新的对象地址,清空只是先吧他指向的地址设置为空,再去指向另一个新地址, 和直接指向新地址有什么区别


只要你的数据源变了,界面应该刷新了~~

你仔细看看你的数据源是否重新绑定了
namhyuk 2009-04-06
  • 打赏
  • 举报
回复
绑定的数据源只要实现INotifyPropertyChanged接口即可。这个到MSDN上自己找吧。其实满简单的。

这在WPF上也是一样!
namhyuk 2009-04-06
  • 打赏
  • 举报
回复
绑定的数据源只要实现INotifyPropertyChanged接口即可。这个到MSDN上自己找吧。其实满简单的。

这在WPF上也是一样!
mykelly6 2009-04-06
  • 打赏
  • 举报
回复
最好要先clear的,我记得以前没清空出过问题的
tianwenjielove 2009-04-06
  • 打赏
  • 举报
回复
单独把绑定写成一个方法,当执行数据修改后。
重新调用方法应该就可以了。试试
duwei1116 2009-04-05
  • 打赏
  • 举报
回复
可以写一个方法重新调用绑定
private void DataBindDataGrid()
{
try
{
OleDbDataAdapter adp = new OleDbDataAdapter(sql, oraconnect);
DataSet ds = new DataSet();
adp.Fill(ds, "table");
dataGridView1.DataSource = ds.Tables[0].DefaultView;
}

catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button1_Click(object sender, EventArgs e)
{
DataBindDataGrid();
}
这样每点一次button1都刷新一遍,但这种方法好像效率不高,数据量小可以用,楼主参考。
wolf1118baby 2009-04-05
  • 打赏
  • 举报
回复
你说的不行是不是在其他事件中不行 如果要刷新数据绑定 必须在你想刷新的事件中全部加上刷新 !
jiyan1221 2009-04-05
  • 打赏
  • 举报
回复
我觉得倒不一定非要先清空再绑定,关键是数据库中的数据更新之后,能够触发DataGridView重新去绑定。
wuyq11 2009-04-05
  • 打赏
  • 举报
回复
通过dataset先清空,再绑定或dataset通过update更新数据
格拉 2009-04-05
  • 打赏
  • 举报
回复
重新绑定应该行啊
格拉 2009-04-05
  • 打赏
  • 举报
回复
重新绑定应该行啊
nszhang 2009-04-05
  • 打赏
  • 举报
回复
能要能保证数据表中的数据发生变化后触发重新绑定的方法就行了
加载更多回复(1)

111,126

社区成员

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

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

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