下面是我使用的代码:
     private void Form_Load(object sender, EventArgs e)
        {  if(Conn.State == 0) Conn.Open();
           string str1 = "Select X1 as 序号,X2 as 单据编号,X3 as 货物编号,X4 as 货物名称 From test";
           SqlDataAdapter da = new SqlDataAdapter(str1, Conn);
           Dataset ds = new Dataset();
           da.fill(ds);
           Datagirdview dgv = new Datagirdview();  
           dgv.DataSouce = ds.Tables[0];
         }
    private void btnSave_Click(object sender, EventArgs e)
        {
          SqlCommandBuilder builder = new SqlCommandBuilder(da);
          da.Update(ds.Tables[0]);
        }然后我运行程序后,在Datagirdview中修改了数据,点保存,结果数据库中还是以前的数据,怎么回事啊,该怎么解决,望各位大虾帮忙!

解决方案 »

  1.   

    刷新了的啊,没有啊,我还跑数据库中去看的,是不是我数据库中的字段名是X1,X2,X3,然后这边datagirdview中的字段是中文名字,就不能更新回去啊?有没有什么解决的办法呢?
      

  2.   

    1、手工在ASPX中设置GridView与DataTable的绑定关系
    2、把select语句中的AS都去掉
      

  3.   

    客户看不懂x1,x2,x3这些是什么意思啊,所以要用AS才行,不用AS我能更新成功的,现在有没什么办法在用AS的情况下,更新数据?
      

  4.   

    你可以通过datatable.Columns[i].ColumnName 把列名修改成x1,x2,x3···
    这样就能更新了 
    不过更新后datagridview中的列名也变成了x1,x2,x3···
    所以你还得刷新一次,把列名变回中文。
      

  5.   

    DataSet ds = new DataSet();
    SqlDataAdapter sda;SqlCommandBuilder scb = new SqlCommandBuilder(sda);
    sda.Update(ds);
    this.dataGridView1.DataSource = ds.Tables[0];