2014-12-21 2 views
0

Я сделал этот код, но он имеет проблему, что каждый раз, когда я запустить его ..Это переписывает мой файл XML и ничего нового не добавил это мой XML-файл:Добавляя в существующий файл XML с использованием набора данных

- <DATA> 
- <Users> 
    <MonopolyID>User2</MonopolyID> 
    <Password>pass2</Password> 
    <FirstName>User2Name</FirstName> 
    <LastName>User2LastName</LastName> 
    </Users> 
    </DATA> 

и можно видеть, что user1 был переписан в любом случае это мой код:

public partial class SignUpPage : Form 
    { 
private void button1_Click(object sender, EventArgs e) 
     { 
      DataSet ds = new DataSet(); 
      DataTable dt = new DataTable(); 
      DataColumn dc = new DataColumn("MonopolyID", typeof(string)); 
      dt.Columns.Add(dc); 
      dc = new DataColumn("Password", typeof(string)); 
      dt.Columns.Add(dc); 
      dc = new DataColumn("FirstName", typeof(string)); 
      dt.Columns.Add(dc); 
      dc = new DataColumn("LastName", typeof(string)); 
      dt.Columns.Add(dc); 
      DataRow dr = dt.NewRow(); 
      dt.Rows.Add(textBox3.Text, textBox4.Text, textBox1.Text, textBox2.Text);//here just putting the texts in the texts box for the first row 
      dt.TableName = "Users"; 
      ds.Tables.Add(dt); 
      ds.DataSetName = "DATA"; 
      ds.WriteXml(@"pathOfTheFile.."); 
    } 
} 

ответ

1

Вы должны использовать «ds.Merge (DT);» как пример ниже:

protected void Button1_Click(object sender, EventArgs e) 
    { 
     DataSet ds = new DataSet(); 
     ds.ReadXml(Server.MapPath("~/xmldata.xml")); 
     DataTable dt = new DataTable(); 
     DataColumn dc = new DataColumn("MonopolyID", typeof(string)); 
     dt.Columns.Add(dc); 
     dc = new DataColumn("Password", typeof(string)); 
     dt.Columns.Add(dc); 
     dc = new DataColumn("FirstName", typeof(string)); 
     dt.Columns.Add(dc); 
     dc = new DataColumn("LastName", typeof(string)); 
     dt.Columns.Add(dc); 
     DataRow dr = dt.NewRow(); 
     dt.Rows.Add("User3", "pass3", "User3Name", "User3LastName"); 
     //dt.TableName = "Users"; 
     ds.Tables.Add(dt); 
     //ds.DataSetName = "DATA"; 
     ds.Merge(dt); 
     ds.WriteXml(Server.MapPath("~/xmldata.xml")); 
    } 

И до сих пор генерироваться ниже XML-файла

<?xml version="1.0" standalone="yes"?> 
<NewDataSet> 
    <Table1> 
    <MonopolyID>User1</MonopolyID> 
    <Password>pass1</Password> 
    <FirstName>User1Name</FirstName> 
    <LastName>User1LastName</LastName> 
    </Table1> 
    <Table2> 
    <MonopolyID>User2</MonopolyID> 
    <Password>pass2</Password> 
    <FirstName>User2Name</FirstName> 
    <LastName>User2LastName</LastName> 
    </Table2> 
    <Table3> 
    <MonopolyID>User3</MonopolyID> 
    <Password>pass3</Password> 
    <FirstName>User3Name</FirstName> 
    <LastName>User3LastName</LastName> 
    </Table3> 
</NewDataSet> 

Позвольте мне знать, если это помогает.

+0

спасибо, что вы человек! – Arja