【发布时间】:2017-03-09 11:39:45
【问题描述】:
我正在使用 BlogEngine 为我工作的公司开发自定义博客。在此之前,一切似乎都运行良好,但现在每次尝试运行整个项目时都会抛出异常。
“System.ArgumentException”类型的异常发生在 mscorlib.dll 但未在用户代码中处理其他信息: 项目已添加。字典中的键:'displayname'键 正在添加:“显示名称”
这是引发异常的代码sn-p:
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(dic.ConatinsKey(rdr.GetString(0)))
标签: c# dictionary key