Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 管理xml文件中的数据库_C#_Xml_Database_Collections - Fatal编程技术网

C# 管理xml文件中的数据库

C# 管理xml文件中的数据库,c#,xml,database,collections,C#,Xml,Database,Collections,我想在数据库中保存一些细节。 我认为使用像access或mysql这样的数据库会有点过分。 因此,我一直计划使用XML文件作为数据库。 我的想法是以某种结构创建一个xml文件,例如: <DB> <Player>John</Player> <Money>50</Money> <Player>James</Player> <Money>10</Money> </DB> 在调用Sa

我想在数据库中保存一些细节。 我认为使用像access或mysql这样的数据库会有点过分。
因此,我一直计划使用XML文件作为数据库。
我的想法是以某种结构创建一个xml文件,例如:

<DB>
<Player>John</Player>
<Money>50</Money>
<Player>James</Player>
<Money>10</Money>
</DB>
在调用SaveToFile后尝试加载FromFile时,我得到:
+InnerException{“是意外的。”}System.Exception{System.InvalidOperationException}

您可能应该像这样使用XmlSerializer

public class User
{
    public string Player { get; set; }
    public string Money{ get; set; }
}
public class Database
{
    public List<User> User { get; set; }
    public static Database LoadFromFile(string path)
    {
        var fs = File.Open(path);
        var serializer = new XmlSerializer(typeof(DataBase));
        var db = (Database)serializer.Deserialize(fs);
        return db;
    }
}
公共类用户
{
公共字符串播放器{get;set;}
公共字符串Money{get;set;}
}
公共类数据库
{
公共列表用户{get;set;}
公共静态数据库LoadFromFile(字符串路径)
{
var fs=File.Open(路径);
var serializer=新的XmlSerializer(typeof(数据库));
var db=(数据库)序列化程序。反序列化(fs);
返回分贝;
}
}

有关详细信息,请参见

,您可以查看序列化。您可以创建类,设置它们的属性,然后将它们序列化为xml并写入文件。反之亦然……读取一个文件,将xml反序列化为新类,就可以开始了。检查:每次我看到一个应用程序,开发人员说“一个数据库将被过度使用,我将只使用文件”(或其他一些方法),开发人员都会后悔!您也可以使用
数据集
。有
ReadXml
WriteXml
函数可用于写入和读取文件。这可能使将来更容易迁移到数据库。您可以定义主键和关系。您还可以处理行添加、更改和删除的事件。还有许多其他功能可用,无需数据库。但是如果这些功能对您都没有用处,那么最好使用
XmlSerializer
。我添加了一个方法,可以将XML序列化到文件中,但它不起作用。错误消息,代码等。?更新问题或创建新问题
public class User
{
    public string Player { get; set; }
    public string Money{ get; set; }
}
public class Database
{
    public List<User> User { get; set; }
    public static Database LoadFromFile(string path)
    {
        var fs = File.Open(path);
        var serializer = new XmlSerializer(typeof(DataBase));
        var db = (Database)serializer.Deserialize(fs);
        return db;
    }
}