С этой командой уже связан открытый читатель данных, который должен быть закрыт первым

Я новичок в базе данных и в параметризованных запросах, мой код не добавляет запись, и когда я нажимаю нет в msgbox, что запись существует, появляется сообщение о том, что "с этой командой уже есть открытый считыватель данных, который должен быть закрыт первым", вот мой код спасибо.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click



        Dim bday As String
        bday = adyear.Text & "-" & admonth.Text & "-" & adday.Text
        Dim fn As String = adfirstname.Text
        Dim mn As String = admiddlename.Text
        Dim ln As String = adlastname.Text
        Dim age As String = adage.Text
        Dim jp As String = adjobposition.Text
        Dim add As String = String.Empty
        add &= "Insert into record (firstname,middlename,lastname,birthday,age,jobposition)"
        add &= "values"
        add &= "(@firstname,@middlename,@lastname@,@birthday,@age,jobposition)"

        Using conn As New SqlConnection("server=KENJOY_FMCD;database=humanresource;user=ayala747;password=4525422;")

                Try
                conn.Open()
                If adfirstname.TextLength < 1 Then
                    MsgBox("Firstname is too short!")
                ElseIf adlastname.TextLength < 1 Then
                    MsgBox("Lastname is too short!")
                Else
                    Dim exist As String = "Select * from record where firstname=@firstname and lastname=@lastname"
                    Dim cmd1 As SqlCommand = New SqlCommand(exist, conn)
                    cmd1.Parameters.AddWithValue("@firstname", adfirstname.Text)
                    cmd1.Parameters.AddWithValue("@lastname", adlastname.Text)

                    Using reader As SqlDataReader = cmd1.ExecuteReader
                        If reader.HasRows Then
                            If MsgBox("The member you are trying too add has a same firstname and lastname in the records", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then


                            Using cmd As New SqlCommand
                                With cmd
                                    .Connection = conn
                                    .CommandType = CommandType.Text
                                    .CommandText = add
                                    .Parameters.AddWithValue("@firstname", fn)
                                    .Parameters.AddWithValue("@middlename", mn)
                                    .Parameters.AddWithValue("@lastname", ln)
                                    .Parameters.AddWithValue("birhthday", bday)
                                    .Parameters.AddWithValue("age", age)
                                    .Parameters.AddWithValue("jobposition", jp)
                                    cmd.ExecuteNonQuery()
                                End With
                            End Using
                            MsgBox("Adding has been void")
                            conn.Close()
                            End If

                        End If
                    End Using
                End If

                Catch ex As Exception
                    MessageBox.Show(ex.Message)
                Finally
                    conn.Dispose()
                End Try
            End Using

   End Sub
End Class

0 ответов

Другие вопросы по тегам