私は LINQ の世界で自分のやり方を感じていて、VB アプリを Azure DB から SELECT することができました。今、新しいユーザーを挿入しようとしています。
「IDENTITY_INSERT が OFF に設定されている場合、テーブル x の ID 列に明示的な値を挿入できません」というエラーの説明が表示されます。
この件に関して同様の質問があることは知っていますが、明示的な値を挿入しようとしており、フラグをオンに変更する必要があるため、ほとんどの人が問題を抱えているようです。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)
);
どんな助けでも大歓迎です。