如何使用C#在XML文件中存储多个用户的数据而不覆盖 [英] How to store multiple user's data in XML file using C# without overwrite

查看:310
本文介绍了如何使用C#在XML文件中存储多个用户的数据而不覆盖的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,我想使用c#将用户的多个数据存储在xml中,但是当用户只提供多个数据时,最后的数据会存储到xml文件中。它被覆盖在现有记录上。我该怎么做才能存储多个用户的数据?

所以请帮我们解决这个问题。



我有什么试过:



Hi, everyone I want to store user's multiple data in xml using c# but when user gives Multiple data only the last data is stored to the xml file. It's overwritten on existance record. What can I do to store multiple user's data ??
So help me guys to solve this problem.

What I have tried:

using System;
using System.Xml;
namespace ReadingXML2
{
    class Class1
    {
        static void Main(string[] args)
        {
            string name, name1;
            int num, i;
            Console.Write("Number Of Student Details = ");
            num = Convert.ToInt16(Console.ReadLine());
            for (i=0; i < num; i++)
            {
                Console.Write("Name = ");
                name = Console.ReadLine();
                Console.Write("College Name : ");
                name1 = Console.ReadLine();

                XmlTextWriter writer = new XmlTextWriter("C:\\Documents\\File\\sample.xml", null);

                writer.WriteStartDocument();
                writer.WriteStartElement("log");
                writer.WriteStartElement("data");
                writer.WriteStartElement("Name");
                writer.WriteString("" + name);
                writer.WriteEndElement();
                writer.WriteStartElement("CollegeName");
                writer.WriteString("" + name1);
                writer.WriteEndDocument();
                writer.Close();
                Console.ReadLine();
            }
        }
    }
}

推荐答案

它可能会更容易使用 BindingList 并序列化为XML。

这是一个很好的例子:详细的数据绑定教程 [ ^ ]
如果您需要有关序列化为XML的信息,请参阅: [ ^ ]



示例:

It would probably be easier to use a BindingList and serialize to XML.
Here is an excellent example: A Detailed Data Binding Tutorial[^]
If you want information about serializing to XML, see: [^]

Example:
using System.Xml.Serialization;

	public static void TestSerialization()
	{
		myClass person = new myClass();
		List<myClass> listStr = new List<myClass>();

		listStr.Add(person);
		// listStr.Add(new myClass() { Check = true, Group = "GroupTwo" });

		var x = new XmlSerializer(listStr.GetType());

		using (var strWriter = new StringWriter())
		{
			x.Serialize(strWriter, listStr);
			File.WriteAllText("test.xml", strWriter.ToString());
		}
	}


using System;
using System.Xml;
namespace ReadingXML2
{
    class Class1
    {
        static void Main(string[] args)
        {
            string name, name1;
            int num, i;
            Console.Write("Number Of Student Details = ");
            num = Convert.ToInt16(Console.ReadLine());
            using (XmlTextWriter writer = new XmlTextWriter("C:\\Documents\\File\\file.xml", null))
            {
                writer.WriteStartDocument();
                writer.WriteStartElement("log");
                for (i = 0; i < num; i++)
                {
                    Console.Write("Name = ");
                    name = Console.ReadLine();
                    Console.Write("College Name : ");
                    name1 = Console.ReadLine();

                    writer.WriteStartElement("data");
                    writer.WriteStartElement("Name");
                    writer.WriteString(name);
                    writer.WriteEndElement();
                    writer.WriteStartElement("CollegeName");
                    writer.WriteString(name1);
                    writer.WriteEndElement();
                    writer.WriteEndElement();

                }
                writer.WriteEndElement();
                writer.WriteEndDocument();
                writer.Close();
            }
                       
        }
    }
}


这篇关于如何使用C#在XML文件中存储多个用户的数据而不覆盖的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆