通过sql来定位阿
你的两个table总归有一个联系的关键字段吧。
你可以将这个更新的过程放入存储过程
不懂的可以继续问。。

解决方案 »

  1.   

    两个表是没有关系的,这是我写的SQL
    strsqlup="Update kc set bz=bz-'"+((TextBox)e.Item.Cells[6].Controls[0]).Text+"' Wherebh='"+((TextBox)e.Item.Cells[2].Controls[0]).Text+"'"
    无法执行,提示:指定的参数已超出有效值的范围。参数名:index 
    有例子最好
      

  2.   

    你先分开测试一下
    确保你的
    (TextBox)e.Item.Cells[6].Controls[0]).Text
    (TextBox)e.Item.Cells[2].Controls[0]).Text
    没有问题
      

  3.   

    for (int i=1;i<=DgBMMX.Items.Count;i++)
    {
    string strsqlupdate="update kc set bz=bz-@bz where cpph='"+TxtCPPH+"' and bh=@bh";
    OleDbCommand comm1=new OleDbCommand(strsqlupdate,cn);
    comm1.Parameters.Add(new OleDbParameter("@bz",OleDbType.Single));
    comm1.Parameters.Add(new OleDbParameter("@bh",OleDbType.Char,10));
    string col=((TextBox)DgBMMX.Items[i].FindControl("txtbz")).Text;
    comm1.Parameters["@bz"].Value=col;
    col=((TextBox)DgBMMX.Items[i].FindControl("txtbh")).Text;
    comm1.Parameters["@bh"].Value=col;
    comm1.ExecuteNonQuery();
    }
    提示:索引超出范围。必须为非负值并小于集合大小。参数名:index