如果有必要的话,UpdateCommand可以执行如下的操作
strCommandText = "If Exists(Select * From AT_ShippingParameter Where ShippingPropertyID = @ShippingPropertyID)";
strCommandText = strCommandText + " Begin";
strCommandText = "Update AT_ShippingParameter Set";
strCommandText = strCommandText + " ShippingPropertyID = @ShippingPropertyID, LBP = @LBP, dF = @dF, dA = @dA, dM = @dM)";
strCommandText = strCommandText + " Where ShippingPropertyID = @ShippingPropertyID";
strCommandText = strCommandText + " End";

解决方案 »

  1.   

    难道数据没有被修改,就不会调用update过程吗?
      

  2.   

    不会也可能是有调用,但是认为这些数据不必要被修改,认为都是必须执行insert
      

  3.   

    update是根据row的状态来决定是否更新的。如果你想通过SqlDataAdapter.Update(ds,"table")来更新是办不到的,除非你自己重写这个方法!
      

  4.   

    有一个笨办法把需要更新的DataSet里的row改变一个字段的值,也就是让它等于它本身,然后再执行Update就可以了例如ada.SelectCommand = cmdSelect;
    ada.InsertCommand = cmdInsert;
    ada.UpdateCommand = cmdUpdate;
    ada.DeleteCommand = cmdDelete;strTableName = "AT_ShippingParameter";
    ada.Update(p_SourceDataSet, strTableName);for(int i = 0;i < p_SourceDataSet.Tables[strTableName].Rows.Count;i++)
    {
    p_SourceDataSet.Tables[strTableName].Rows[i][0] = p_SourceDataSet.Tables[strTableName].Rows[i][0];
    }ada.SelectCommand = cmdSelect;
    ada.InsertCommand = cmdInsert;
    ada.UpdateCommand = cmdUpdate;
    ada.DeleteCommand = cmdDelete;ada.Update(p_SourceDataSet, strTableName);