c#
  • asp.net
  • .net
  • dictionary
  • 2013-03-28 107 views -2 likes 
    -2

    我正在插入一個唯一的ID[KEY]字典及其相應的time[VALUE]。 我在ID列唯一的值,但我得到下面的錯誤C#字典錯誤 - 已添加具有相同密鑰的項目

    「具有相同鍵的項已被添加」

    for (int j = 0; j < pro1.Count; j++) 
    { 
    
        string startend = "Select Id, CStart, CEnd from MBA1 where Channel='" + mbaChannel[allchan] + "' and Product='" + pro[allpro] + "' and ProgDate='" + pro1[j] + "'"; 
        SqlCommand dat = new SqlCommand(startend, conn); 
        SqlDataReader datrdr = dat.ExecuteReader(); 
        while (datrdr.Read()) 
        { 
         start.Add(datrdr["Id"].ToString(), datrdr.GetDateTime(1)); 
         end.Add(datrdr["Id"].ToString(), datrdr.GetDateTime(2)); 
    
        } 
        datrdr.Close(); 
    

    我敢肯定有在我的ID列中沒有重複。請幫忙!

    +0

    也許詞典不是空的,當你開始閱讀? –

    +0

    良好的格式化永遠是你的朋友.. –

    +0

    你怎麼能這麼肯定呢?你有沒有調用yourDict.ContainsKey()來檢查? – David

    回答

    1

    您的查詢和字典更新處於循環狀態。如果Id列中沒有重複值,那麼您的查詢在兩個不同的查詢中返回至少1行(在您的示例中爲j的不同值)。

    1

    您正在執行查詢pro1.Count次。如果pro1.Count> 1,則會嘗試將重複的項目放入字典中。

    相關問題