1

ユーザーがテキストボックスにデータを入力して「保存」ボタンをクリックすると、次回プログラムを開いたときに何らかのファイルに情報が保存されるC#プログラムを作成しようとしています。情報が自動的に読み込まれます。

Visual C# Express を使用しています。MySQL、MSSQL、Access などの何らかのデータベースを必要とせずにこれを行う最善の方法は何ですか?

唯一の方法または最も簡単な方法がデータベースである場合は、むしろ Access を使用します。その場合、プログラムのユーザーは、自分のプログラムを自分のコンピューターで実行するために Access をインストールする必要がありますか? 別のデータベースを使用するとどうなりますか?

ps

言い忘れましたが、ユーザーがこのファイルにアクセスして内容を簡単に読み取れないようにしたいのです。暗号化されていないテキスト ファイルは、簡単に開くことができます。これを暗号化する方法はありますか?また、「:」などの区切り文字を使用すると、ユーザーはその文字を使用できないことを意味します。では、他の方法は?

ありがとう!

4

4 に答える 4

3

次のキーワードを追加して、ユーザー データをシリアライズ可能にします。

[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;
    }

ストリームで 'using' を使用することもできますが、このコードはかなり単純だと思います。また、MyObject にさらに項目を追加できることも意味します。

編集:暗号化のために、AESまたは同様のものを追加できます。ファイルをバイナリとして保存すると、メモ帳などで読み取ることができますが、簡単に編集することはできません。実際の暗号化に関する長い説明は次のとおりです。

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

于 2009-01-13T00:47:35.963 に答える
1

アプリケーションを 1 人のユーザーのみが使用する場合は、データをファイルに保存するだけです (XML は何らかの構造を提供します)。

アプリケーションが複数の人によって使用され、データがそれらの間で共有される場合は、データベースが最適なオプションです。データベースを使用する場合は、ユーザーのコンピューターにデータベースをインストールする必要がありますが、ユーザーに透過的にインストールすることは可能ですが、組み込み可能なデータベースを使用するのが最善です。MySQL のようなものが最適です。ベット。

(編集:データベースは実際にはユーザーのコンピューター上にある必要はありませんが、コンピューターから見ることができる必要があります)

于 2009-01-13T00:50:11.607 に答える
0

非常に単純な場合は、プレーン テキスト ファイルに配置できます。より構造化されたデータについては、CSV として保存して解析するか、XmlDocument を作成してディスクに保存することを検討できます。

于 2009-01-13T00:47:04.513 に答える