C#:捕获数据,显示给用户,保存到磁盘,上传到数据库:最佳方法

时间:2009-01-17 22:54:33

标签: c# xml file-io

我有一个程序可以在设定的时间间隔内从硬件中捕获实时数据。数据以XML格式返回。我想对这些数据做几件事(按顺序): - 显示给用户 - 保存到磁盘 - 最后,将其上传到数据库

我目前的做法是采用XML,将其解析为哈希表,以便我可以向用户显示正确的值。

接下来,我想将XML保存到磁盘上的文件中。对于每个数据捕获会话,我计划创建一个唯一的XML文件,然后将所有数据转储到其中。

最后,我想重新解析XML并将其上传到MySQL数据库。数据无法立即上传到数据库。

这似乎是解决这个问题的非常低效的方法,我希望得到一些建议。

将数据保存为XML是否浪费高清空间?

为了将XML写入数据库而必须重新解析XML是否效率低下?

谢谢!


澄清一下:典型的XML响应大约为1kb,并且每15-60秒以大约1个响应的速率捕获。

我认为我确实希望将XML作为XML存储在磁盘上,因为数据非常有价值并且很难再现(如果可能的话)。谢谢!

3 个答案:

答案 0 :(得分:1)

当您从源收到新的XML文档时,直接保存到磁盘并解析它以显示给用户。

使用后台进程或用户启动时,从磁盘读取xml文件并根据创建日期将其发送到服务器(因此您只能检索最新的日期)以插入到MySql中。

答案 1 :(得分:0)

这主要取决于您移动的数据量和速度。如果你不得不上传到数据库而且只需要几秒钟,那么XML的灵活性肯定是好的。如果您从未使用本地存储的数据,除非将其上传到数据库并且解析需要几分钟,您可能需要重新考虑该策略。

答案 2 :(得分:0)

也许应该有一个单独的线程来进行数据获取和处理。