private void SaveSheetListDetails()
        {
            DataTable DeleteTable = TreeDataView.GetChanges(DataRowState.Deleted);
            if (DeleteTable != null)
            {
                foreach (DataRow row in DeleteTable.Rows)
                {
                    DeleteNewSheetListDetails(row);
                }
            }            DataTable UpdataTable = TreeDataView.GetChanges(DataRowState.Modified);
            if (UpdataTable != null)
            {
                foreach (DataRow row in UpdataTable.Rows)
                {
                    UpdateNewSheetListDetails(row);
                }
            }   
      
            DataTable InsertTable = TreeDataView.GetChanges(DataRowState.Added);
            if (InsertTable != null)
            {
                foreach (DataRow row in InsertTable.Rows)
                {
                    DataRow[] rows = TreeDataView.Select("line =" + Convert.ToInt32(row["line"]));
                    if (rows.Length > 0)
                    {
                        InsertNewSheetListDetails(rows[0]);
                    }
                }
            }
       }
数据表绑了1个DataTable   (TreeDataView)
 窗体上面更新操作了  并不能通过DataRowState.Modified 获得到改变的数据
TreeDataView.GetChanges(DataRowState.Modified);这样就不能进行更新数据库的操作大家是如何获得界面更新的数据去更新数据库呢

解决方案 »

  1.   

    你每更改一个内容,就update一下数据库不行吗
      

  2.   

    一般的话就是根据拿到的值,直接一条update去更改数据库就行了
      

  3.   

    界面上修改了  但是 行状态是unchanged  这样就得不到
      

  4.   

    第一,你确定是否采用了。Net的绑定方式让UI和DataTable绑定了。第二,当操作完了之后保存之前,需要调用Form的验证一次:this.Validate();
         如果DataTable是通过Bindingsource和UI绑定的,还需要调用Bindings。EndEdit();然后在检查DataTable,应该是有改变的