无法在对象' dbo.ta_Kullanici'中插入重复的键行。具有唯一索引' IX_ta_Kullanici'。\ r \ n该声明已终止

时间:2015-05-29 08:46:05

标签: c# entity-framework sql-server-2012

我尝试开发一个从excel表到SqlServer的插入数据的程序。 我尝试将数据插入sqlserver时出错。这是我的错误信息

  

"无法在对象' dbo.ta_Kullanici'中插入重复的键行。同   唯一索引' IX_ta_Kullanici'。\ r \ n该声明已被终止。"

ID是unque和autoincrement在我的表中。

感谢您的帮助! :)

我的代码的一部分在这里;

 if (!check)
                    {
                        kul = new ta_Kullanici();
                        hata = new KullaniciHata();
                        hata.AdSoyad = kullanicilar.Rows[i][7].ToString() + " " + kullanicilar.Rows[i][8].ToString();
                        hatalar.Add(hata);

                        kul.kul_ad = kullanicilar.Rows[i][7].ToString();
                        kul.kul_soyad = kullanicilar.Rows[i][8].ToString();
                        foreach (var bolge in bolgeler)
                        {
                            if (kullanicilar.Rows[i][1].ToString().ToLower().IndexOf(bolge.bolge_ad.ToLower()) != -1)
                            {
                                kul.kul_bolge_Id = bolge.bolge_Id;
                            }
                        }
                        kul.kul_ikTar = DateTime.Now;
                        kul.kul_statu = true;
                        kul.kul_guid = Guid.NewGuid().ToString();
                        kul.kul_ikIP = "127.0.0.1";
                        kul.kul_ik_kul_Id = 5;
                        kul.kul_TCKNo = kullanicilar.Rows[i][9].ToString();
                        kul.kul_kulAd = kullanicilar.Rows[i][6].ToString();
                        kul.kul_tip_enm = 2;
                        if (!string.IsNullOrWhiteSpace(kullanicilar.Rows[i][9].ToString()))
                        {
                            kul.kul_sifre = kullanicilar.Rows[i][9].ToString();

                        }
                        else
                        {
                            kul.kul_sifre = "123123";
                        }

                        checkList.Add(kul);
                        db.ta_Kullanici.Add(kul);
                        db.SaveChanges();
                        hatalar.Remove(hata);
                    }

2 个答案:

答案 0 :(得分:0)

查看问题dbo.ta_Kullanici中的表格,看看名为IX_ta_Kullanici的索引所在的列。

有问题的索引是唯一索引,这意味着允许列的任何重复值

请记住,此索引可以位于表格中的任何列上,并且不限于主键。

答案 1 :(得分:0)

所以基本上问题是该列有一个唯一键的索引,该索引的作用是确保列上不会重复重复值,要更改您可以做的是转到管理工作室, 转到包含该列的表,在该列上单击鼠标右键,然后单击进行修改。将出现一个屏幕,其中显示所有列。右键单击列旁边的小框并选择索引/键。然后您将看到一个 IsUnique 属性。将其设置为“否”。