日期:2014-05-18  浏览次数:20680 次

C# winform程序关于DataGridView刷新明白的入,多谢
写了个程序

  String sqlstr="select * from sites";
  myadapter = new OleDbDataAdapter(sqlstr, myOleDbConnection);
  ds=new DataSet();
  myadapter.Fill(ds,"Table1");
  dataGridView1.DataSource = ds.Tables["Table1"];

绑定了dataGridView1



后来改变了ds其中的数值


.................

  if (m == 0)
  {
  ds.Tables["Table1"].Rows[i]["sitestate"] = "无法访问";
  MessageBox.Show(ds.Tables["Table1"].Rows[i]["siteurl"].ToString().Trim()+"访问异常");
  }
  else
  ds.Tables["Table1"].Rows[i]["sitestate"] = "可以访问";
   
  myadapter.Update(ds,"Table1");

....................



于是希望DataGridView1也能刷新,显示出改变后的数据。

看网上的方法是重新绑一次

于是我就


 dataGridView1.DataSource = null;
dataGridView1.DataSource = ds.Tables["Table1"];

但DataSet ds没有用Adapter重新Fill.因为我觉得ds.Tables["Table1"].Rows[i]["sitestate"] = "可以访问";已经是改变了其中的数值,没必要重新Fill


然而什么也没发生,DataGridView也没有刷新

(注意我是winform程序,DataGridView是没有bind函数的)

------解决方案--------------------
datagridview + dataset + bindsource .