我试图写一个C#程序,其中,当用户输入一些数据到一个文本框,并点击“保存”按钮,将信息存储在某种类型的文件,当程序被打开下一个一次,该信息被自动加载英寸

我使用Visual C#明示。什么是做到这一点,而不需要某种像MySQL或MSSQL或Access?

数据库的最佳方式

如果唯一的办法还是最简单的方法是一个数据库,我宁愿使用Access。如果是这样,那么该程序的用户需要访问安装了我的程序在他们的计算机上运行?如果我去什么跟其他数据库?

P.S。

我忘了提,我宁愿用户无法访问此文件,并轻松地读取其中的内容。未经加密的文本文件很容易打开。任何方法来加密呢?另外,如果我使用像一个分隔符“:”,则意味着用户不能使用该字符。因此,任何其他方式?

谢谢!

有帮助吗?

解决方案

请您的用户数据序列通过添加关键字:

[Serializable]

你的数据结构之上。当加载对话框,从磁盘加载序列化的结构,当你离开的对话框中,保存数据结构。

从风格的角度来看,你应该不会有对话框变化的数据,直到关闭对话框(如果它的模式)。

要保存:

    private bool Save(String inFileName, MyObject inObject){
        try {
            FileStream theStream = File.Open(inFileName, FileMode.Create);

            BinaryFormatter theFormatter = new BinaryFormatter();
            theFormatter.Serialize(theStream, inObject);//add it to the end there
            theStream.Dispose();
            theStream.Close();
        } catch{
            return false;
        }
        return true;

    }

要负载:

    private MyObject Read(String inFileName){
        MyObject theReturn = null;
        try {

            FileStream theStream = File.Open(inFileName, FileMode.Open, FileAccess.Read);                

            BinaryFormatter theFormatter = new BinaryFormatter();
            theReturn = (CImageData)theFormatter.Deserialize(theStream);//add it to the end there
            theStream.Dispose();
            theStream.Close();
        }
        catch {
            return null;
        }
        return theReturn;
    }

您也可以使用流“使用”,但是这个代码是非常简单的,我想。这也意味着,你可以添加更多的项目到MyObject来。

编辑:对于加密,您可以在AES或类似的东西补充。这可能是矫枉过正的你,并将文件保存为二进制可能使其可读像记事本,但不容易编辑。这里的真实加密冗长的解释:

http://msdn.microsoft.com/en-us/magazine /cc164055.aspx

其他提示

SQL精简版将隐藏从作为数据方便(和它的自由)。您还可以使用密码保护CE数据库。一个SQL CE数据库在.SDF文件完全包含,如Access,这样你就可以复制周围的.sdf文件,而不必担心网络连接等。

如果您的应用程序只有由一个人使用,那么只需将您的数据存储在一个文件(XML能给你一些结构)

如果您的应用程序将被多人使用,并且它们之间共享的数据,那么数据库是最好的选择。如果你使用一个数据库则是你需要有你的用户的计算机上安装数据库,但有可能是transparantly做你的用户,对你是最好与嵌入式数据库,像MySQL的将是你最好赌注。

(编辑:数据库却没有成为用户的计算机上,但他需要能够看到从他coputer)

如果这是非常简单的,那么你可以将其放置在一个纯文本文件。欲了解更多结构化的数据,你可以考虑把它作为一个CSV和分析,或创建一个XmlDocument并保存该磁盘。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top