2016-11-10 5 views
-3

Я работаю в ASP.NET MVC, и я заблокирован (окружен) в моей модели с этой проклятой ошибкой «элемент с тем же ключом уже был добавлен», I не понимаю, почему, хотя у меня есть почти тот же код с разными запросами в других методах моей модели.C# - «Элемент с тем же ключом уже был добавлен»

И я не думаю, что проблема может возникнуть в результате запроса, потому что я уже использовал ее (как и раньше) в другом проекте.

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 selected only возвращает только отдельные строки на основе списка столбцов. Вероятно, ваш набор данных возвращает ваш столбец кода с повторяющимися значениями. –

ответ

0

Может быть, вы можете проверить, если они ключ уже в словаре

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

Спасибо !! Оно работает ! –

Смежные вопросы