Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 检查读卡器是否有数据不工作_Mysql_Vb.net - Fatal编程技术网

Mysql 检查读卡器是否有数据不工作

Mysql 检查读卡器是否有数据不工作,mysql,vb.net,Mysql,Vb.net,我使用MysqlDataReader从mysql数据库中读取数据,但是,每当我以不同的方式编码它时,它仍然错误地读取数据。 这个程序是调度系统,我使用datetimepicker进行时间和日期输入,然后用户将单击按钮检查它是否已经存在于数据库/不可用的调度中,否则它将告诉用户该调度可用 Dim reader1, reader2 As MySqlDataReader MySqlConn.Open() Dim query2, query1 As String Dim cmd2 As New M

我使用MysqlDataReader从mysql数据库中读取数据,但是,每当我以不同的方式编码它时,它仍然错误地读取数据。 这个程序是调度系统,我使用datetimepicker进行时间和日期输入,然后用户将单击按钮检查它是否已经存在于数据库/不可用的调度中,否则它将告诉用户该调度可用

Dim reader1, reader2 As MySqlDataReader

MySqlConn.Open()

Dim query2, query1 As String

Dim cmd2 As New MySqlCommand

    'TIME
    query1 = "SELECT * FROM schedule WHERE Date ='" & dtpDate.Text & "'"
    cmd = New MySqlCommand(query1, MySqlConn)
    reader1 = cmd.ExecuteReader
    reader1.Close()

    query2 = "SELECT * FROM schedule WHERE Time ='" & dtpTime.Text & "'"
    cmd2 = New MySqlCommand(query2, MySqlConn)
    reader2 = cmd2.ExecuteReader


    If reader1.HasRows And reader2.HasRows Then
        MsgBox("A Patient already set an appointment for this schedule! Please set another Time & Date.", MsgBoxStyle.Critical, "Schedule exists")
        dtpTime.Select()

    ElseIf reader1.HasRows = 0 And reader2.HasRows = 0 Then
        MsgBox("Schedule is available!", MsgBoxStyle.Information, "Schedule")

    ElseIf reader1.HasRows = 0 And reader2.HasRows Then
        MsgBox("Schedule is available!", MsgBoxStyle.Information, "Schedule")

    ElseIf reader1.HasRows And reader2.HasRows = 0 Then
        MsgBox("Schedule is available!", MsgBoxStyle.Information, "Schedule")
    End If

    MySqlConn.Close()

End Sub

Uou将在检查条件之前关闭读取器1。“读取”读卡器后,应关闭读卡器

在一个查询中检查两个字段。使用参数可避免sql注入攻击

query1 = "SELECT * FROM schedule WHERE [Date] = @date And [Time] = @time"
cmd.Parameters.AddWithValue("date", dtpDate.Text)
cmd.Parameters.AddWithValue("time", dtpTime.Text)

但是,当我删除reader1.close时,reader2=cmd2.ExecuteReader出现错误,它说“已经有一个打开的DataReader与此连接关联,必须先关闭”。我该怎么办?然后使用一个时态变量存储要从第一个读卡器计算的值,然后关闭它。您只需要一个查询。如果日期和时间字段分开,则将它们合并。在给出代码之后,下一步是什么?我应该在iF-ELSE语句中使用什么条件?如果它返回某个值,那么似乎有一个约会,对吗?