C# - “一个元素具有相同的密钥已被添加”

问题描述:

我在ASP.NET MVC中工作,我在我的模型中阻塞(包围)这个该死的错误“一个具有相同密钥的元素已被添加”,I根本不理解为什么我在模型的其他方法中使用几乎相同的代码和不同的请求。C# - “一个元素具有相同的密钥已被添加”

而且我不认为问题可能来自请求,因为我已经像以前一样在另一个项目中使用她(it)。

public Dictionary<string,string> getDonnee() 
{ 
    Dictionary<string, string> list = new Dictionary<string, string>(); 

    SqlConnection cn; 
    SqlDataAdapter da; 
    DataSet ds; 

    cn = new SqlConnection(CS_DW); 
    cn.Open(); 

    da = new SqlDataAdapter("select distinct(ltrim(rtrim(cpic))) as code, cpic as lib from [DW].[dbo].[PIC_PROD_S001] ", cn); 
    ds = new DataSet(); 
    da.Fill(ds, "code"); 

    list.Add("REEL", "REEL"); 
    foreach (DataRow row in ds.Tables["code"].Rows) 
    { 
     list.Add(row["code"].ToString(), row["lib"].ToString()); 
    } 

    cn.Close(); 
    return list; 
} 
+4

那么你调试成在那里的突破点的代码?什么是重复密钥? –

+1

也许'REEL'也存在于数据库中? – haim770

+0

select distinct仅基于列列表返回不同的行。很可能你的数据集正在返回你的代码列中的重复值。 –

也许你可以测试已如果他们在关键的字典

if (!list.ContainsKey(row["code"].ToString())) 
{ 
    list.Add(row["code"].ToString(), row["lib"].ToString()); 
} 
+0

谢谢 !!有用 ! –