存储来自C#应用程序的数据

Jus*_*ett 15 .net c#

我最近开始学习一些C#并写了一个Yahtzee克隆.我的下一步(现在游戏逻辑就位并正常运行)是整合一些方法来保持所有游戏的统计数据.

我的问题是,我应该如何存储这些信息?我的第一个想法是使用数据库,我感觉这就是我得到的答案......如果是这样的话,你能指出我从C#应用程序创建和访问数据库的良好资源吗?


存储在XML文件中实际上对我来说更有意义,但我想如果我建议我会被撕裂;).我习惯于构建Web应用程序,对于那些,文本文件通常不受欢迎.

那么,使用XML文件,我应该看哪些类可以轻松操作?

Bri*_*ink 16

这是一个想法:使用Xml序列化.设计您的GameStats数据结构,并可选择使用Xml属性来影响架构.我喜欢将这种方法用于小型数据集,因为它快速简便,我需要做的就是设计和操作数据结构.


using (FileStream fs = new FileStream(....))
{
    // Read in stats
    XmlSerializer xs = new XmlSerializer(typeof(GameStats));
    GameStats stats = (GameStats)xs.Deserialize(fs);

    // Manipulate stats here ...

    // Write out game stats
    XmlSerializer xs = new XmlSerializer(typeof(GameStats));
    xs.Serialize(fs, stats);

    fs.Close();
}
Run Code Online (Sandbox Code Playgroud)


Gre*_*man 13

对于类似这样的事情,数据库可能会有点过分 - 首先将您的信息存储在XML文档(或一系列XML文档中,如果有大量数据).你得到了所有那些漂亮的XCopy部署内容,你仍然可以使用LINQ,如果你后来确定你真的需要高性能的关系查询逻辑,它将是一个平滑过渡到数据库.


pal*_*sey 7

数据库可能过度 - 您是否考虑过将分数存储在文件中?

如果您决定使用数据库,可以考虑使用SQLite,它可以像文件一样分发.有一个开源的.NET提供程序--System.Data.SQLite - 包含了入门所需的一切.

在.NET中访问和读取数据库非常容易 - 请查看此问题以获取示例代码.