-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)))' –