读取文本数据并存储在应用程序内存中

时间:2014-10-28 13:51:06

标签: c# asp.net

我正在处理一个项目,该项目具有一个文本文件形式的数据库。 该项目是一个Web服务,它通过Web方法调用来回答来自不同用户的所需数据。 数据库的文本文件大小会增加,大小可能超过100 MB 如何将我在asp.net中的整个应用程序中的数据文本文件加载到内存中,并且来自不同用户的每个请求都从内存中加载的数据中获取数据?除此之外,还可以在内存中向此数据库变量添加更多数据,然后将更改后的数据保存到文件中吗?

谢谢 我感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您可以轻松地将文本文件读入内存。您可能希望将其放在全局应用程序类(global.asax)中的Application_Start函数中。

Application["TheData"] = System.IO.File.ReadAllText(Server.MapPath("~/App_Data/Database.txt"));

如果您需要重新初始化数据,只需再次运行该行代码,也许是为了响应文件上传。

然而,现在你在内存中只有一个巨大的字符串。您可能需要将其处理成某种结构化类(并存储该字符串而不是字符串),然后使用方法来回答问题。它可能看起来像这样:

MyDatabase db = MyDatabase.LoadFromText(File.ReadAllText(Server.MapPath("~/App_Data/Database.txt")));
Application["TheData"] = db; //probably better to make it a one liner

顺便说一下,一个巨大的文本文件是一个坏主意。而不是文本文件,使用实际的数据库。它们意味着保存可以改变的数据,并且您可以提出适当的关系结构。