如何将新数据添加到现有xml文件和xml文件必须使用Windows窗体应用程序中的DATASET保留旧数据以及新添加的数据

时间:2012-10-05 05:13:31

标签: c# xml c#-4.0 dataset

我正在使用Windows窗体开发超市应用程序。在这个项目中,我有一个表单,可以在填写表单时添加新的产品详细信息,然后单击“提交”按钮,新添加的产品详细信息应添加到已存在的xml文件中,该文件用于存储所有产品详细信息,并且必须保留旧产品详细信息也。我想使用数据集/数据表创建此xml文件。我必须加'n'否。单个XML文件中的产品。在下面的xml文件中,'P2'是新添加的产品,xml必须存储此'P2'产品并保留旧数据,如'P1'产品

<?xml version="1.0" standalone="yes" ?> 
 - <SuperMarketStock>
 -   <ProductDetails>
      <ProductName>P1</ProductName> 
      <ProductId>PID 1</ProductId> 
      <Date>5/10/2012</Date> 
      <Quantity>10</Quantity> 
      <CostPrice>10.50</CostPrice> 
      <SellingPrice>12.00</SellingPrice> 
   <ProductDetails>
<ProductDetails>
    <ProductName>P2</ProductName> 
    <ProductId>PID2</ProductId> 
    <Date>06/10/2012</Date> 
    <Quantity>10</Quantity> 
    <CostPrice>50.00</CostPrice> 
    <SellingPrice>55.00</SellingPrice> 
</ProductDetails>
 ........
 ........
 .......
</SuperMarketStock>

我使用下面的代码,但我无法得到我的要求Plz指导我...

private void btnAdminSubmit_Click(object sender, EventArgs e)
  {
    if(rbtnAddNew.Checked.Equals(true))
     {
    DataTable adminDT = new DataTable("ProductDetails");
    adminDT.Columns.Add("ProductName");
    adminDT.Columns.Add("ProductId");
    adminDT.Columns.Add("Date");
    adminDT.Columns.Add("Quantity");
    adminDT.Columns.Add("CostPrice");
    adminDT.Columns.Add("SellingPrice");
    adminDT.Rows.Add(tbxAdminProductName.Text, tbxAdminProductID.Text,   tbxAdminDate.Text, tbxAdminQuantity.Text, tbxAdminCostPrice.Text, tbxAdminSellingPrice.Text);
      DataSet adminDS = new DataSet("SuperMarketStock");
      adminDS.Tables.Add(adminDT);
      adminDS.WriteXml("stockDetails.xml");
        }

1 个答案:

答案 0 :(得分:0)

您可以使用此代码替换

adminDT.Rows.Add(tbxAdminProductName.Text, tbxAdminProductID.Text,   tbxAdminDate.Text, tbxAdminQuantity.Text, tbxAdminCostPrice.Text, tbxAdminSellingPrice.Text);

解决方案

var row = adminDT.NewRow();
row[0] =  tbxAdminProductName.Text;
row[1] =  tbxAdminProductID.Text;
row[2] =  tbxAdminDate.Text;
row[3] =  tbxAdminQuantity.Text;
row[4] =  tbxAdminCostPrice.Text;
row[5] =  tbxAdminSellingPrice.Text;

adminDT.Rows.Add(row);
adminDS.Tables.Add(adminDT);
adminDS.WriteXml("stockDetails.xml");