showTable.Rows[i].EndEdit();    ----〉 有错误 //砍掉这句话!if ( (showTable.Rows[i].RowState.ToString()) == "Modified" )  
--->
if ( showTable.Rows[i].RowState == RowState.Modified )  
MessageBox.Show(showTable.Rows[i].["KB申請]); ----〉 显示某列字段值有错误 --->
MessageBox.Show(showTable.Rows[i].["KB申請].ToString()); ----〉 显示某列字段值有错误 

解决方案 »

  1.   

    DataTable.DefaultView.RowStateFilter = System.Data.DataViewRowState.ModifiedCurrent;
    楼主可以自己选择状态:)
      

  2.   

    另外
    if ( (showTable.Rows[i].RowState.ToString()) == "Modified" ) 表示修改
    但是
    else
    不表示不修改
    有可能是Add,有可能是Delete....
    修改和不修改并不是互为补集的关系
      

  3.   

    dataTable.GetChanges (RowState);  //取出有改变的部分行
      

  4.   

    "showTable.Rows[i].EndEdit();    ----〉 有错误 "  
    如果DataSet.EnforceConstraints=true  ,且你的数据行不能通过约束检查,则EndEdit会报错
      

  5.   

    我更新DataGrid 中的一行的值后,下面的MessageBox总是报“Added”,为什么是报"Modified"????private void btn更新_Click_1(object sender, System.EventArgs e)
    {
        for (int i=0;i < this.showTable.Rows.Count; i++)
       {
          MessageBox.ShowshowTable.Rows[i].RowState.ToString());   }
    }