在窗体中有一个datagridview和一个textbox,当我改变textbox内的值后,并按另一个button时,datagridview的数据不能更新,数据库内的也不能更新,button内的代码如下:            //直接赋值
            dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value = txtName.Text.ToString();
          
            dt = (DataTable)this.dataGridView1.DataSource;
            SqlCommandBuilder cmb = new SqlCommandBuilder(adp);
            adp.Update(dt);
            dataGridView1.DataSource = dt;

解决方案 »

  1.   

    但是手动在datagridview中改变数据时,却可以实现更新
      

  2.   

    我的理解是dgv直接操作修改了数据源。而textbox
    //直接赋值
                dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value = txtName.Text.ToString();估计不行,
    解决办法:直接写个方法,将根据textBox值去更新数据,重新绑定dgv
      

  3.   

    你加一句 dataGridView1.EndEdit();试试
      

  4.   

    dt = (DataTable)this.dataGridView1.DataSource;
    dataGridView1.DataSource = dt;后一句好像多此一举吧
      

  5.   

    在改变gridview的时候需要改变数据源,然后重新绑定才可以实现真正的改变,你只是表面上改变了,实际的datasource还是没变,最后的重新绑定还是原来的值。可以将dt改变后然后在databind
      

  6.   

    我觉得应该是没有修改数据源datasource,但我不会写代码区通过绑定textbox去更新,各位麻烦指点下
      

  7.   

    你调试一下试试   我觉得3楼说的有一定可能   肯定是先得结束dgv的编辑才能取出dgv选中的值  否则dgv是默认选中原来的值的
      

  8.   

    你可以直接取出textbox的值作为条件去数据库做update,然后再根据之前的查询条件重新取一下数据,更新datagridview