Frage

Ich versuche, ein C # Programm zu schreiben, in dem, wenn ein Benutzer einige Daten in ein Textfeld ein und klickt auf eine Schaltfläche „Speichern“ wird die Information in einer Art von Datei gespeichert, dass, wenn das Programm das nächste Mal geöffnet wird Mal werden die Informationen automatisch geladen in.

Ich bin mit Visual C # Express. Was ist der beste Weg, dies zu tun, ohne irgendeine Art von Datenbank wie MySQL oder MSSQL oder Access erforderlich?

Wenn der einzige Weg, oder einfachste Weg, eine Datenbank ist, würde ich eher Access verwenden. Wenn ja, hat der Benutzer des Programms installiert zugreifen muß für mein Programm auf ihrem Computer laufen zu lassen? Was passiert, wenn ich mit einer anderen Datenbank gehen?

P. S.

Ich vergaß zu erwähnen, würde ich eher der Benutzer nicht in der Lage sein, auf diese Datei zuzugreifen und den Inhalt leicht zu lesen. Textdatei ohne Verschlüsselung wäre leicht zu öffnen. Jede Art und Weise, dies zu verschlüsseln? Auch, wenn ich ein Trennzeichen wie verwenden ‚:‘, dann bedeutet, dass der Benutzer nicht das Zeichen verwenden kann. So eine andere Möglichkeit?

Danke!

War es hilfreich?

Lösung

Machen Sie Ihre Benutzerdaten serializable durch das Schlüsselwort hinzufügen:

[Serializable]

über Ihre Datenstruktur. Wenn Sie das Dialogfeld laden, laden Sie Ihre serialisierten Struktur von der Festplatte, und wenn Sie den Dialog verlassen, die Datenstruktur speichern.

Vom Stil Sicht, sollten Sie wahrscheinlich nicht das Dialogfeld Änderungsdaten haben, bis das Dialogfeld geschlossen wird (wenn es modal ist).

speichern:

    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;

    }

zu laden:

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

Sie können auch ‚mit‘ auf einem Stream verwenden, aber dieser Code ist ziemlich einfach, denke ich. Es bedeutet auch, dass Sie mehr Einzelteile in MyObject hinzufügen können.

Edit: Für die Verschlüsselung können Sie in AES oder etwas ähnliches hinzuzufügen. Das könnte für Sie, und speichern Sie die Datei als binäre zu viel des Guten kann es durch etwas wie Notepad lesbar machen, aber nicht leicht bearbeitet werden. Hier ist eine lange Erklärung auf echte Verschlüsselung:

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

Andere Tipps

Sql Compact Edition würde die Daten verstecken zu sein leicht zugänglich (und seine frei). Sie können auch mit einem Passwort eine CE-Datenbank schützen. Eine SQL CE-Datenbank ist vollständig in einer SDF-Datei enthalten ist, wie Zugang, so dass Sie die SDF-Datei um kopieren und nicht über eine Netzwerkverbindung kümmern, etc.

Wenn Ihre Anwendung nur von einer einzelnen Person verwendet werden, dann speichern Sie einfach Ihre Daten in einer Datei (XML würde Ihnen eine gewisse Struktur)

Wenn Ihre Anwendung wird von mehreren Personen genutzt werden und die Daten unter ihnen geteilt, dann einer Datenbank ist die beste Option. Wenn Sie eine Datenbank verwenden, dann ja müssen Sie eine Datenbank auf Ihrem Benutzer-Computer installiert haben, obwohl es möglich ist, dass in transparenter Weise zu Ihrem Benutzer zu tun, denn, dass Sie am besten ab mit einer integrierbare Datenbank, so etwas wie MySQL wäre die beste Wette.

(EDIT: die Datenbank tatsächlich nicht auf dem Computer des Benutzers sein, aber er würde muß in der Lage sein, um es von seinem coputer zu sehen)

Wenn es sehr einfach ist, dann Sie es in einer Textdatei platzieren konnten. Für weitere strukturierte Daten könnten Sie betrachten es als eine CSV-Speichern und Analysieren von ihm oder ein XmlDocument Erstellen und Speichern, dass auf der Festplatte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top