2016-04-20 13 views
0

ich eine einfache Anwendung vorgenommen haben, die Sie kann mit einem Passwort (das Passwort vergessen haben den Hauptteil dieser Anmeldung ist) vergessen anmelden und Sie können klickenÄndern Sie mit C# einen Wert in einer CSV-Datei

Die CSV-Datei strukturiert ist, wie: Benutzername, Kennwort, Rolle, IDNumber

ich diese Werte aus meiner CSV gut Datei lesen kann und es funktioniert alles perfekt, aber was im versuchend zu tun ist es einem Benutzer erlauben, das Passwort zu ändern, wenn sie den richtigen Benutzernamen und ID-Typ Nummer.

Mein Code für das Lesen von CSV

 private void button1_Click(object sender, EventArgs e) 
    { 
     var encoding = Encoding.GetEncoding("iso-8859-1"); 
     var csvLines = File.ReadAllLines("C:\\Users\\hughesa3\\Desktop\\test environment\\users.csv", encoding); 

     foreach (var line in csvLines) 
     { 
      var values = line.Split(','); 
      if (values[0].Contains(textBox1.Text) && textBox2.Text == values[3]) // Textbox 1 = Username & Values[3] Is there ID Number 
      { 
       Form3 form = new Form3(); 
       form.Show(); // This loads the new form with the fields new password and confirm password. 
      } 
     } 
    } 

Datei, so wird der Wert ich ändern würde müssen, ist Wert [1] ich die Kontrollen tun können, um zu sehen, wenn beide Passwörter übereinstimmen, aber wenn ich bin nicht sicher, wie man Nur Werte überschreiben [1]. Ich habe versucht, mit StreamWriter und StreamReader zu suchen und etwas zu sehen, aber als ich versucht habe, es zu implementieren, erhalte ich nur zahlreiche Fehler. Kann irgendjemand einen anderen Weg weisen, dies zu tun oder anzudeuten?

Wenn mehr Informationen benötigt werden, sagen Sie bitte. Vielen Dank.

+1

Wie viele Benutzer gleichzeitig auf Ihre Anwendung zugreifen? – Chris

+0

@Chris Es ist nur eine Übung, die ich für die Lehrlingsausbildung mache, also gibt es nur 5 oder so Benutzer in der CSV-Datei. Und es wird nur 1 Benutzer gleichzeitig sein. Danke – Ash

+0

Wenn die Benutzer einzeln auf Ihre Anwendung zugreifen können, können Sie die abgerufenen Daten in einer Objektliste speichern und von dort aus können Sie LINQ verwenden, um die Daten zu ändern. Nach der Änderung können Sie die vorhandene CSV-Datei überschreiben. Das ist nur mein Vorschlag oder Kommentar. – Chris

Antwort

1

Sie können Bibliotheken wie CsvHelper und A Fast CSV Reader verwenden, um CSV-Dateien zu lesen und zu schreiben.

Da es sich nur um eine Kursarbeit handelt, können Sie beim Ändern von Daten für einen Benutzer die gesamte Datei überschreiben.

kann Ihr Algorithmus sein:

  1. die CSV in das Array-Datei lesen.
  2. Finden Sie einen Benutzerdatensatz
  3. Update, um den Rekord
  4. Lagern Sie das Array in die CSV-Datei.

Sie können es mit oder ohne Bibliotheken tun, die ich vorher erwähnte.

Verwandte Themen