2011-12-01 122 views
1

我已經使用AES對MS Access文件中的每個項目進行了加密。加密效果很好。問題是我得到一個錯誤:Argument 1: cannot convert from 'object' to 'string'在這樣的線上:security.Decrypt(readPersonalData.GetValue(1), storedAuth.Password, storedAuth.UserName)無法將對象轉換爲字符串

我該如何避免這種情況?

 if (readPersonalData.HasRows) 
     { 
      while (readPersonalData.Read()) 
      { 
       // Count all entries read from the reader. 
       countEntries++; 


       txtDisplay.Text += "=== Entry ID: " + readPersonalData.GetValue(0) + " ===" + Environment.NewLine; 
       txtDisplay.Text += "Type: " + security.Decrypt(readPersonalData.GetValue(1), storedAuth.Password, storedAuth.UserName) + Environment.NewLine; 
       if (!readPersonalData.IsDBNull(2)) txtDisplay.Text += "URL: " + security.Decrypt(readPersonalData.GetValue(2), storedAuth.Password, storedAuth.UserName) + Environment.NewLine; 
       if (!readPersonalData.IsDBNull(3)) txtDisplay.Text += "Software Name: " + security.Decrypt(readPersonalData.GetValue(3), storedAuth.Password, storedAuth.UserName) + Environment.NewLine; 
       if (!readPersonalData.IsDBNull(4)) txtDisplay.Text += "Serial Code: " + security.Decrypt(readPersonalData.GetValue(4), storedAuth.Password, storedAuth.UserName) + Environment.NewLine; 
       if (!readPersonalData.IsDBNull(5)) txtDisplay.Text += "User Name: " + security.Decrypt(readPersonalData.GetValue(5), storedAuth.Password, storedAuth.UserName) + Environment.NewLine; 
       if (!readPersonalData.IsDBNull(6)) txtDisplay.Text += "Password: " + security.Decrypt(readPersonalData.GetValue(6), storedAuth.Password, storedAuth.UserName) + Environment.NewLine; 
       txtDisplay.Text += Environment.NewLine; 
      } 
     } 
+1

如果在GetValue(1)之後添加ToString()會怎麼樣? –

+0

不起作用。我已經嘗試過了。 – NewHelpNeeder

回答

2

你可以嘗試 -

txtDisplay.Text += "Type: " + security.Decrypt(readPersonalData.GetString(1), storedAuth.Password, storedAuth.UserName) + Environment.NewLine; 

應返回可以傳遞到security.Decrypt函數的字符串。

+0

完美!謝謝! – NewHelpNeeder

+0

@NewHelpNeeder,除了接受它之外,你最好還是讚揚答案,表達它是有用的。 –