C# 管理xml文件中的数据库
我想在数据库中保存一些细节。 我认为使用像access或mysql这样的数据库会有点过分。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
因此,我一直计划使用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;
}
}