string isChecked = ((DataTable) DataGrid1.DataSource).Rows[i][j].toString()

解决方案 »

  1.   

    修改当前行,
    DataRowView drv = (DataRowView)this.BindingContext[this.ds,this.ds.Tables[0].TableName].Current;
    获取到drv就可以改数据了

    输出所有行
    for(int i=0;i<dg.VisibleRowCount;i++)
    {
    for(int j=0;i<dg.VisibleColumnCount;j++)
    {
    MessageBox.Show(dg[i,j].ToString());
    }
    }
      

  2.   

    string isChecked = DataGrid1.Table[0].Rows[i][j].ToString()
      

  3.   

    谢谢darkm00n(黑月) ,他的方法解决了问题!
      

  4.   

    大家可以看看我是如何批量修改DataGrid中的数据的:for(int i=0;i<dd.Tables["RZ_FPDKL_MX"].Rows.Count;i++)
    {
    string fj=dd.Tables["RZ_FPDKL_MX"].Rows[i]["发票号码"].ToString();
    string isChecked = ((DataTable) dg1.DataSource).Rows[i][8].ToString();
    string sql="update RZ_FPDKL_MX set DJH='"+isChecked+"' where FPHM ='"+fj+"'";
    OleDbCommand myCommand = new OleDbCommand(sql,QsqlConn);
    myCommand.ExecuteNonQuery();
    }
    不知道这种方法的效率如何?希望大家有用!