我只是在 LINQ 的世界中摸索,我已经设法让我的 VB 应用程序从我的 Azure DB 中选择,现在我正在尝试插入一个新用户。
我收到错误描述“当 IDENTITY_INSERT 设置为 OFF 时,无法在表 x 中插入标识列的显式值”。
我知道关于这个主题有类似的问题,但似乎他们中的大多数都遇到了问题,因为他们正试图插入一个明确的值,并且需要将标志更改为 ON。我试图在让数据库分配 ID 值的同时进行插入,所以我认为 IDENTITY_INSERT 标志应该关闭,我需要更改我的 VB 或 LINQ 语句以告诉它不要尝试为我的 ID 分配值柱子。
这是我在运行插入的 VB 表单按钮中的代码:
Private Sub btn_AddUser_Click(sender As Object, e As EventArgs) Handles btn_AddUser.Click
Dim db As New stem1DataContext()
Dim usr As New Users With
{.firstname = txt_firstName.Text,
.lastname = txt_lastName.Text,
.username = txt_username.Text,
.password = txt_password.Text,
.email = txt_email.Text}
db.Users.InsertOnSubmit(usr)
Try
db.SubmitChanges()
Catch
MsgBox("Form not valid: " & Err.Description)
End Try
End Sub
usr 语句包含表中的所有字段,除了 ID 列。我并没有真正看到我的代码试图在哪里插入 ID 列的值,但它可能在幕后某处执行此操作,我需要明确告诉它不要这样做。
用户表的 SQL 如下:
CREATE TABLE [dbo].[Users] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[username] VARCHAR (50) NOT NULL,
[firstname] VARCHAR (50) NOT NULL,
[lastname] VARCHAR (50) NOT NULL,
[email] VARCHAR (50) NOT NULL,
[password] NCHAR (10) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
任何帮助将不胜感激。