在datagridview中,我是这样绑定数据的
 
dataGridView1.DataSource = null;
 ds.Tables.Add(datatable);
 dataGridView1.DataSource=ds;
 dataGridView1.DataMember = "dgzry";
 
数据能够显示出来,但是我重新查询数据fill到datatable中
dataGridView1.DataSource = null;
 ds.Tables.Add(datatable);
 dataGridView1.DataSource=ds;
 dataGridView1.DataMember = "dgzry";为什么数据没有更新

解决方案 »

  1.   

     ds.Tables.Add(datatable);
    这玩意用来干吗
      

  2.   

    你断点调试一下看看你ds.Tables.Add(datatable);中的ds数据源是否改变了。
      

  3.   

    datatable中的数据变了,我直接datagridview.datasource=datatable,这样可以刷新数据,为什么通过dataset绑定不能刷新呢
      

  4.   

    我是初学者,我们老师好像是这样教的,楼主试试看,dataGridView1.DataSource=ds.tables[0];
      

  5.   

    楼上写的也没有错误,相当于dataGridView1.datacoure=datatable1;
    应该没有错误,我用的dataset,并且在使用dataset之前也删除了里边相应datatable,重新生成了一个新的datatable。为什么不行的,我如果把dataset修改为局部变量就可以呢
      

  6.   

    楼主,在你的代码中加一句就可以了:
    dataGridView1.DataSource = null;
    ds.Clear();
     ds.Tables.Add(datatable);
     dataGridView1.DataSource=ds;
     dataGridView1.DataMember = "dgzry";
      

  7.   

    dataGridView1.DataSource = null;
    ds.Clear();
     ds.Tables.Add(datatable);
     dataGridView1.DataSource=ds.Tables ["dgzry"];
     //dataGridView1.DataMember = "dgzry";  不要这句
      

  8.   

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

  9.   

    为什么dataGridView1.DataSource = null;
    ds.Clear();
     ds.Tables.Add(datatable);
     dataGridView1.DataSource=ds.Tables ["dgzry"];
     //dataGridView1.DataMember = "dgzry"; 
    这样可以
    而这样数据不能刷新dataGridView1.DataSource = null;
    ds.Clear();
     ds.Tables.Add(datatable);
     dataGridView1.DataSource=ds;
     dataGridView1.DataMember = "dgzry";
      

  10.   

    DataSet数据集对象都没有你怎么绑定
      

  11.   

    为什么dataGridView1.DataSource = null;
    ds.Clear();
     ds.Tables.Add(datatable);
     dataGridView1.DataSource=ds.Tables ["dgzry"];
     //dataGridView1.DataMember = "dgzry";  
    这样可以
    而这样数据不能刷新dataGridView1.DataSource = null;
    ds.Clear();
     ds.Tables.Add(datatable);
     dataGridView1.DataSource=ds;
     dataGridView1.DataMember = "dgzry";
     
    ds为全局dataSet变量
      

  12.   

    这是因为程序任务数据源,即ds没有改变,所有它不会发出界面数据刷新的事件,
    如果你改成这样,肯定可以:
    dataGridView1.Columns.Clear();
    dataGridView1.DataSource = null;
    ds.Clear();
     ds.Tables.Add(datatable);
     dataGridView1.DataSource=ds;
     dataGridView1.DataMember = "dgzry";或者:dataGridView1.DataSource = null;
    ds.Clear();
    ds=new DataSet();
     ds.Tables.Add(datatable);
     dataGridView1.DataSource=ds;
     dataGridView1.DataMember = "dgzry";
      

  13.   

    重新刷新数据源就是rebind的意思 DataSet ds = new DataSet();
            private void Form1_Load(object sender, EventArgs e)
            {
                using (SqlConnection con = new SqlConnection())
                {
                    SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM STUDENT", con);
                    da.Fill(ds,"dgzry");
                    Bind();
                }
            }        public void Bind()
            {
                //dataGridView1.DataSource = null;
                //ds.Tables.Add(datatable);
                dataGridView1.DataMember = "dgzry";
                dataGridView1.DataSource = ds;
            }
            private void ReBind()
            {
                using (SqlConnection con = new SqlConnection())
                {
                    ds.Clear();
                    SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM TEACHER", con);
                    da.Fill(ds, "dgzry");
                    Bind();
                }
            }
      

  14.   


     private void textBox1_Click(object sender, EventArgs e)
            {
                ReBind();
            }
      

  15.   

    #16楼的我试的怎么不行呢。15楼上半部分不行,下半部分还是重新创建了新的ds,我问的是不创建新的ds。而是改变ds里边的table的记录,不能重新创新ds,在datagridview中,要求datasoure绑定全局ds,datamember绑定表。
      

  16.   

    我一般是用DataTable》DataView》然后BindingSource,最后给DataGridView的。