С этой командой уже связан открытый читатель данных, который должен быть закрыт первым
Я новичок в базе данных и в параметризованных запросах, мой код не добавляет запись, и когда я нажимаю нет в 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