-1
我正在使用BlogEngine爲我工作的公司開發定製的博客。在此之前,一切似乎都工作正常,但我現在正在每次嘗試運行整個項目時拋出異常。項目已被添加。鍵入字典:'顯示名'鍵添加:'顯示名'
類型「System.ArgumentException」的異常出現在mscorlib.dll的 但在用戶代碼的其他信息沒有處理: 項目已添加。重點在詞典:「顯示名稱」鍵 正在補充說:「顯示名稱」
這是的代碼段拋出異常:
public override AuthorProfile SelectProfile(string id)
{
var dic = new StringDictionary();
var profile = new AuthorProfile(id);
// Retrieve Profile data from Db
using (var conn = this.CreateConnection())
{
if (conn.HasConnection)
{
if (Blog.CurrentInstance.IsSiteAggregation)
{
using (var cmd = conn.CreateTextCommand($"SELECT SettingName, SettingValue FROM {tablePrefix}Profiles WHERE UserName = {parmPrefix}name"))
{
cmd.Parameters.Add(conn.CreateParameter(FormatParamName("name"), id));
using (var rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
dic.Add(rdr.GetString(0), rdr.GetString(1));
}
}
}
}
else
{
using (var cmd = conn.CreateTextCommand(string.Format("SELECT SettingName, SettingValue FROM {0}Profiles WHERE BlogID = {1}blogid AND UserName = {1}name", this.tablePrefix, this.parmPrefix)))
{
cmd.Parameters.Add(conn.CreateParameter(FormatParamName("blogid"), Blog.CurrentInstance.Id.ToString()));
cmd.Parameters.Add(conn.CreateParameter(FormatParamName("name"), id));
using (var rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
dic.Add(rdr.GetString(0), rdr.GetString(1));**[* EXCEPTION IS THROWN AT THIS LINE]**
}
}
}
}
}
}
請,我該如何解決這個問題?
錯誤消息是不言自明的前面添加
if
條款! *項目已添加*因此,您應該在插入新密鑰之前進行檢查。 'if(dic.ConatinsKey(rdr.GetString(0)))' –