2016-04-20 46 views
0

我做了一個簡單的應用程序,讓你登錄,你可以點擊忘記密碼(忘記密碼是該應用的主要部分)在C#中的csv文件

CSV文件的結構更改值如:用戶名,密碼,角色,ID號

我可以很好地從我的CSV文件中讀取這些值,它可以完美的工作,但是我試圖做的是允許用戶更改密碼,如果他們輸入正確的用戶名和ID數。

我讀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. 
      } 
     } 
    } 

所以我需要改變的值是值[1] 我可以做檢查,看看這兩個密碼相匹配,但是當我不確定如何代碼只覆蓋值[1]。我試着用google搜索並看到一些StreamWriter和StreamReader的東西,但是當我試圖實現它時,我只是得到許多錯誤。有人能夠建議或可能暗示另一種方式嗎?

如果需要更多的信息,請說。謝謝。

+1

有多少用戶同時訪問您的應用程序? – Chris

+0

@Chris它只是一個練習,我正在做學徒課程,所以在csv文件中只有5個左右的用戶。而且它一次只能有1個用戶。謝謝 – Ash

+0

如果用戶可以一次訪問一個應用程序,則可以將檢索到的數據存儲到對象列表中,然後您可以使用LINQ修改數據,修改後您可以覆蓋現有的csv文件。這只是我的建議或評論。 – Chris

回答

1

您可以像CsvHelperA Fast CSV Reader這樣的用戶庫讀取和寫入CSV文件。

因爲它只是課程作業應用程序,所以您可以在爲用戶更改數據時覆蓋整個文件。

你的算法可以是:

  1. 閱讀CSV文件到數組。
  2. 查找用戶記錄
  3. 更新記錄
  4. 存儲陣列到CSV文件。

您可以使用或不使用我之前提到的庫。