yogesh vaidya Ответов: 1

Ошибка Execquery: voilation of primary key constraint 'pk_user_log_3214ec276f8e662e'.connot insert duplicat key in object dbo.user.log .the duplicate key value is (0), ststement hasbeen terminated


Привет я работаю над своим магазинным проектом в visual basic 2017 и SQL server express 2014

та же ошибка заключается в вставке данных в таблицу log information tabel

таблица данных


Id (pk,int not null)
имя_пользователя (nvarchar,50)
пароль (nvarchar,50)
login_time(datetime 7 null)
login_date(датавремя 7 нуль)

а мой код таков
я не собираюсь вставлять значение pk в этот запрос ,

пожалуйста, нужна помощь

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

sql.AddParam("@u1", m_name)
    sql.AddParam("@u2", TxtPAssword.Text)
    sql.AddParam("@u3", m_time)
    sql.AddParam("@u4", dt1)
    sql.ExecQuery("Insert into user_log(user_name,password,login_time,login_date) " &
                  "Values(@u1,@u2,@u3,@u4)")
    If Noerrors(True) = False Then MsgBox(sql.Exception)

1 Ответов

Рейтинг:
2

Richard Deeming

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

То Id столбец-это первичный ключ. В таблице не может быть более одной записи с одним и тем же первичным ключом. Таким образом, ваша вставка завершается ошибкой в вашем вопросе.

Либо укажите Id В вашем INSERT запрос или установка IDENTITY свойство на этой колонке.

IDENTITY (Property) (Transact-SQL) | Microsoft Docs[^]