2011-12-01 123 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,除了接受它之外,你最好还是赞扬答案,表达它是有用的。 –