Добавление записи в базу данных в vb.net

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

Параметр @TxtGender не имеет значения по умолчанию

Вот картина: Ошибка @TxtGender не имеет значения по умолчанию

Это код для добавления новой записи

 Private Sub BtnAddRec_Click(sender As Object, e As EventArgs) Handles BtnAddRec.Click

    Dim PregnantCheck As Boolean
    Dim MedicallyCompCheck As Boolean

    If ChkPregnantRec.Checked Then

        PregnantCheck = True
    Else

        PregnantCheck = False

    End If

    If ChkPregnantRec.Checked Then

        MedicallyCompCheck = True
    Else

        MedicallyCompCheck = False

    End If

    Call connection()

    Dim cmd = New OleDbCommand
    With cmd

        .Connection = cn
        .CommandType = CommandType.Text
        .CommandText = "INSERT INTO [patient details] ([First name],[Surname],[Gender],[Date of birth],[Place of birth],[Phone number],[Street Address],[Suburb],[Health Insurance],[Post code],[Pregnant],[Medically compromised]) VALUES (@TxtFirstnameRec,@TxtSurnameRec,@TxtGenderRec,@TxtDobRec,@TxtPlaceofbirthRec,@TxtPhoneRec,@TxtStreetRec,@TxtSuburb,@TxtPostcodeRec,@TxtHealthinsuranceRec,@ChkPregnantRec,@ChkMedicallycompromisedRec)"

        .Parameters.Add(New OleDbParameter("@TxtFirstnameRec", OleDbType.VarChar, 255, TxtFirstnameRec.Text))
        .Parameters.Add(New OleDbParameter("@TxtSurnameRec", OleDbType.VarChar, 255, TxtSurnameRec.Text))
        .Parameters.Add(New OleDbParameter("@TxtDobRec", OleDbType.Date, 255, dtpDOB.Value.Date))
        .Parameters.Add(New OleDbParameter("@TxtGenderRec", OleDbType.VarChar, 255, TxtGenderRec.Text))
        .Parameters.Add(New OleDbParameter("@TxtPlaceofbirthRec", OleDbType.VarChar, 255, TxtPlaceofbirthRec.Text))
        .Parameters.Add(New OleDbParameter("@TxtStreetRec", OleDbType.VarChar, 255, TxtStreetRec.Text))
        .Parameters.Add(New OleDbParameter("@TxtSuburb", OleDbType.VarChar, 255, TxtSuburbRec.Text))
        .Parameters.Add(New OleDbParameter("@TxtPostcodeRec", OleDbType.VarChar, 255, TxtPostcodeRec.Text))
        .Parameters.Add(New OleDbParameter("@TxtPhoneRec", OleDbType.VarChar, 255, TxtPhoneRec.Text))
        .Parameters.Add(New OleDbParameter("@TxtHealthinsuranceRec", OleDbType.VarChar, 255, TxtHealthinsuranceRec.Text))
        .Parameters.Add(New OleDbParameter("@ChkPregnantRec", OleDbType.Boolean, 255, ChkPregnantRec.Checked))
        .Parameters.Add(New OleDbParameter("@ChkMedicallycompromisedRec", OleDbType.Boolean, 255, ChkMedicallycompromisedRec.Checked))

        .Parameters("@TxtFirstnameRec").Value = TxtFirstnameRec.Text
        .Parameters("@TxtSurnameRec").Value = TxtSurnameRec.Text

        '.Parameters("@TxtDobRec").Value = dtpDOB.Value.ToStr
        .Parameters("@TxtGenderRec").Value = TxtGenderRec.Text
        .Parameters("@TxtPlaceofbirthRec").Value = TxtPlaceofbirthRec.Text
        .Parameters("@TxtStreetRec").Value = TxtStreetRec.Text
        .Parameters("@TxtSuburb").Value = TxtSuburbRec.Text
        .Parameters("@TxtPostcodeRec").Value = TxtPhoneRec.Text
        .Parameters("@TxtPhoneRec").Value = TxtFirstnameRec.Text
        .Parameters("@TxtHealthinsuranceRec").Value = TxtHealthinsuranceRec.Text

        .Parameters("@ChkPregnantRec").Value = ChkPregnantRec.Checked
        .Parameters("@ChkMedicallycompromisedRec").Value = ChkMedicallycompromisedRec.Checked

Извините, что я поместил большой бит кода, но я не знаю, что делать. База данных находится в корзине программы.

Типы и значения данных в базе данных

Если кто-то может помочь мне с этим, что будет очень признательно, спасибо.

database,vb.net,

0

Ответов: 1


0

В OleDb параметры являются позиционными, т.е. их имена игнорируются, но они должны быть добавлены в том же порядке, что и в тексте SQL.

Как @TxtGenderRecи в третьей позиции в тексте SQL, вы должны добавить его после @TxtSurnameRecпараметра вместо @TxtDobRecпараметра.

Другие параметры не совпадают.

базы данных, vb.net,
Похожие вопросы