Почему sql update создает новую строку в моей базе данных (C#)?

Я работаю над своим собственным проектом asp.net mvc, и у меня небольшая проблема с обновлением моей базы данных mysql.

У меня есть таблица в моей базе данных со следующими столбцами: (учетная запись, имя, фамилия, день рождения, номер телефона, изображение профиля) все они являются столбцами varchar, а таблица называется «пользовательский профиль».

Здесь вы видите одну строку в таблице. https://imgur.com/a/86z68Om

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

Здесь вы можете увидеть мой код C# для обновления: https://imgur.com/a/h2uNzSD

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

У тебя есть идеи?

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

Steve 04.09.2018 10:09

Вы уверены, что это не вставка?

BugFinder 04.09.2018 10:10

Добро пожаловать в stackoverflow. Я бы посоветовал вам отладить код и установить точки останова, чтобы проверить ваше предположение, что выполняемый код является обновлением.

Cleptus 04.09.2018 10:13

По какой-то причине трассировка стека относится к моему методу вставки, но я не вызываю здесь метод вставки. Когда я нажимаю на конкретную кнопку на веб-сайте, вызывается указанный выше код.

Dániel Foltán 04.09.2018 10:13

@ DánielFoltán ясно, что он вызывает вставку, вы не включили трассировку стека, поэтому, если она вызывает вставку, вам нужно отследить причину и остановить ее :)

BugFinder 04.09.2018 10:15

О ... Я был хромым. Действительно действительно хромой. Я создал свое представление управления, скопировав свое предыдущее представление, и форма была перенаправлена ​​на другой метод действия контроллера, который вызвал вставку.

Dániel Foltán 04.09.2018 10:34
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
6
397
1

Ответы 1

У одного из моих коллег была такая же проблема: идентификатор не был создан автоматически. Вы можете добавить это к свойству Id в своем классе. (DatabaseGenerated (DatabaseGeneratedOption.Identity)]).

Чтобы вручную решить эту проблему (Crude) => Укажите предыдущий номер идентификатора, чтобы убедиться, что он обновлен.

Но наверняка вы пытаетесь вставить в таблицу.

Другие вопросы по теме