2016-11-10 115 views
-3

我在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僅基於列列表返回不同的行。很可能你的數據集正在返回你的代碼列中的重複值。 –

回答

0

也許你可以測試已如果他們在關鍵的字典

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

謝謝 !!有用 ! –

相關問題