Member 13470606 Ответов: 2

Как решить проблему нарушения ограничения первичного ключа 'PK_teacher'. Не удается вставить дубликат ключа в объект 'dbo.teacher' на сайте регистрации NIOS?


[SqlException (0x80131904): нарушение ограничения первичного ключа 'PK_Teacher'. Невозможно вставить дубликат ключа в объект dbo.Учитель".
Заявление было прекращено.]
DBAccess.DB.ExecuteSQL(String Sql) в C:\NIOS_DElEd_Bridge\DBAccess\DB.cs:106
Ниос.Делед.Учитель.RegForm.Submit_Clicked(отправитель объекта, EventArgs e) в C:\NIOS_DElEd_Bridge\NIOS_DElEd_Bridge\Teacher\RegForm.aspx.cs:601
Системы.Веб.Пользовательского интерфейса.WebControls.Кнопка.RaisePostBackEvent(String eventArgument) +155
Системы.Веб.Пользовательского интерфейса.Страницы.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3804

Что я уже пробовал:

Я еще ничего не пробовал. Здесь чрезвычайная ситуация.

A_Griffin

Ошибка довольно очевидна. Вы пытаетесь вставить запись со значением первичного ключа, которая уже существует в базе данных.

2 Ответов

Рейтинг:
1

ZurdoDev

Как уже упоминалось в комментариях, ошибка точно говорит вам, в чем заключается проблема. Вы пытаетесь вставить значение в поле первичного ключа таблицы учителей, которое уже существует.


Рейтинг:
0

Wendelius

Как говорится в ошибке, вы пытаетесь вставить запись в таблицу со значением ключа, уже существующим в таблице.

Первое, что нужно сделать, это взглянуть на определение первичного ключа. Откройте SSMS и перейдите к своей таблице в базе данных. Разверните узел keys, и вы увидите PK_Teacher. Щелкните его правой кнопкой мыши и выберите пункт Изменить. Это приведет вас к окну дизайна, где вы увидите определение вашего ключа.

Теперь проверьте, является ли ключ тем, что вы ожидаете. Если это естественный ключ, например имя, то вам нужно предоставить другую информацию при вставке данных или изменить ключ, чтобы он содержал нужные столбцы. Если ключ является столбцом идентификаторов, то он не должен вызывать дубликатов, если только кто-то не перезаписал счетчик. В этом случае повторное заполнение счетчика до последнего существующего значения должно устранить проблему.

Но, честно говоря, это очень помогло бы увидеть определение таблицы, поэтому, если вам нужна более подробная информация, пожалуйста, обновите вопрос, чтобы он содержал сценарий для таблицы.