Я работаю над своим собственным проектом asp.net mvc, и у меня небольшая проблема с обновлением моей базы данных mysql.
У меня есть таблица в моей базе данных со следующими столбцами: (учетная запись, имя, фамилия, день рождения, номер телефона, изображение профиля) все они являются столбцами varchar, а таблица называется «пользовательский профиль».
Здесь вы видите одну строку в таблице. https://imgur.com/a/86z68Om
Каждый раз, когда я пытаюсь обновить какой-либо столбец, я получаю повторяющуюся ошибку первичного ключа для столбца первичного ключа, потому что команда обновления пытается создать новую строку.
Здесь вы можете увидеть мой код C# для обновления: https://imgur.com/a/h2uNzSD
Это было немного сложнее, но это не сработало, поэтому я решил упростить его, изменив его, чтобы я мог проверить, работает он или нет. Если я прав, я хорошо использовал синтаксис и действительно понятия не имею, почему метод обновления хочет создать новую строку в моей базе данных.
У тебя есть идеи?
Вы уверены, что это не вставка?
Добро пожаловать в stackoverflow. Я бы посоветовал вам отладить код и установить точки останова, чтобы проверить ваше предположение, что выполняемый код является обновлением.
По какой-то причине трассировка стека относится к моему методу вставки, но я не вызываю здесь метод вставки. Когда я нажимаю на конкретную кнопку на веб-сайте, вызывается указанный выше код.
@ DánielFoltán ясно, что он вызывает вставку, вы не включили трассировку стека, поэтому, если она вызывает вставку, вам нужно отследить причину и остановить ее :)
О ... Я был хромым. Действительно действительно хромой. Я создал свое представление управления, скопировав свое предыдущее представление, и форма была перенаправлена на другой метод действия контроллера, который вызвал вставку.





У одного из моих коллег была такая же проблема: идентификатор не был создан автоматически. Вы можете добавить это к свойству Id в своем классе. (DatabaseGenerated (DatabaseGeneratedOption.Identity)]).
Чтобы вручную решить эту проблему (Crude) => Укажите предыдущий номер идентификатора, чтобы убедиться, что он обновлен.
Но наверняка вы пытаетесь вставить в таблицу.
Пожалуйста, не размещайте изображения кода. Они нечитаемы, и невозможно скопировать и вставить код из изображения, чтобы проверить его.