我只是感覺我在LINQ世界中的方式,並且設法讓我的VB應用程序從我的Azure數據庫選擇,現在我試圖插入一個新的用戶。在VB窗體中使用LINQ,出現錯誤:當IDENTITY_INSERT設置爲OFF時,無法在表x中插入標識列的顯式值
我收到錯誤說明'IDENTITY_INSERT設置爲OFF時,無法在表x中爲標識列插入顯式值「。
我知道這個問題上有類似的問題,但似乎大多數人都有問題,因爲他們試圖插入一個明確的值,並需要將標誌更改爲ON。我試圖在讓DB分配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)
);
任何幫助將不勝感激。
對於遇到此問題的其他人,我通過進入連接的.dbml解決了該問題,並在表的ID列下查看了屬性並將屬性「Auto Generated Value」設置爲TRUE。 –
我也意識到,我有這個問題的原因。當我第一次創建表格時,我忘記將ID字段設置爲標識列。我後來又回來了,更新了桌子。事實證明,這個更新不會修改dbml,我認爲這是有道理的,但是您需要知道您需要進入並進行額外的更改以避免此問題。 –
您應該爲此問題發佈自己的答案,而不會顯示爲「未答覆」。 – shadow