现有datatable数据如下:
  <budgets>
    <mbudget prp_code="5070" item_no="62" item_name="bbbb" unit_cost="570" total_amount="588" sequence_no="5" cash="3" equipment="6" consumables="9" />
    <mbudget prp_code="5070" item_no="25" item_name="cccc" total_amount="1500" sequence_no="6" />
  </budgets>我现要插入一行到里面:  <mbudget prp_code="5070" item_no="11" item_name="dddd" unit_cost="500" total_amount="100" sequence_no="6" cash="60" equipment="10" consumables="30" />最后成为
<budgets>
    <mbudget prp_code="5070" item_no="62" item_name="bbbb" total_amount="588" sequence_no="5" />
    <mbudget prp_code="5070" item_no="25" item_name="cccc" total_amount="1500" sequence_no="6" />
  <mbudget prp_code="5070" item_no="11" item_name="dddd"  total_amount="100" sequence_no="6"/>
</budgets>
我这样写:
System.Data.DataRow  mNewRow = prpDataSet.Tables["mbudget"].NewRow();
mNewRow["prp_code"] = prpCode.ToString();
mNewRow["item_no"] = "11";
mNewRow["sequence_no"] = StringUtil.FilterNull(mCount+1);
mNewRow["item_name"] = "FFFF";
mNewRow["total_amount"] = StringUtil.FilterNull(dtotal_amount2);prpDataSet.Tables["budgets"].Rows.Add(mNewRow);但是报错:"该行已经属于另一个表" 应该怎样写请问?

解决方案 »

  1.   

    System.Data.DataRow  mNewRow = prpDataSet.Tables["mbudget"].NewRow(); prpDataSet.Tables["budgets"].Rows.Add(mNewRow); 你两个表名至少要一样吧。。
      

  2.   

    我如果写成prpDataSet.Tables["mbudget"].Rows.Add(mNewRow);  
    则它加到<budgets> </budgets> 的后面去了,如下:
    <budgets> 
         <mbudget prp_code="5070" item_no="62" item_name="bbbb" total_amount="588" sequence_no="5" /> 
         <mbudget prp_code="5070" item_no="25" item_name="cccc" total_amount="1500" sequence_no="6" /> 
    </budgets> 
       <mbudget prp_code="5070" item_no="11" item_name="dddd"  total_amount="100" sequence_no="6"/> 不是我要的结果啊
      

  3.   


    prpDataSet.Tables["budgets"].ImportRow(mNewRow);
      

  4.   

    System.Data.DataRow  mNewRow = prpDataSet.Tables["mbudget"].NewRow(); 
    mNewRow["prp_code"] = prpCode.ToString(); 
    mNewRow["item_no"] = "11"; 
    mNewRow["sequence_no"] = StringUtil.FilterNull(mCount+1); 
    mNewRow["item_name"] = "FFFF"; 
    mNewRow["total_amount"] = StringUtil.FilterNull(dtotal_amount2); //prpDataSet.Tables["budgets"].Rows.Add(mNewRow); 
    prpDataSet.Tables["budgets"].Rows.Add(mNewRow.ItemArray()); 
      

  5.   

    需要dataset吧 要不你怎么更新数据库
      

  6.   

    NewRow()的时候应该是你想要加到的表的NewRow。
    ////System.Data.DataRow  mNewRow = prpDataSet.Tables["mbudget"].NewRow(); 
    System.Data.DataRow  mNewRow = prpDataSet.Tables["budgets"].NewRow(); 
    mNewRow["prp_code"] = prpCode.ToString(); 
    mNewRow["item_no"] = "11"; 
    mNewRow["sequence_no"] = StringUtil.FilterNull(mCount+1); 
    mNewRow["item_name"] = "FFFF"; 
    mNewRow["total_amount"] = StringUtil.FilterNull(dtotal_amount2); prpDataSet.Tables["budgets"].Rows.Add(mNewRow); 
      

  7.   


    prpDataSet.Tables["budgets"].Rows.Add(mNewRow); 
    改为
    prpDataSet.Tables["budgets"].Rows.Add(mNewRow.ItemArray);