[只要我轻触未注册到数据库的RFID,它都不会显示msgbox。我使用else使用一些条件语句,但它也不起作用。我尝试了不等于运算符,但也不起作用
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
process1:
Try
rec = New ADODB.Recordset
rec.Open("SELECT * from admin where rfid='" & TextBox4.Text & "'", con, 1, 2)
Dim y As Integer
y = 0
While Not rec.EOF
rec.MoveNext()
y = y + 1
End While
If y = 1 Then
Timer1.Stop()
Me.Hide()
MsgBox("VALID RFID! WELCOME ADMIN!")
SystemForm.Show()
TextBox4.Text = ""
If y <> 1 Then
Timer1.Stop()
MsgBox("Invalid RFID NO.!")
TextBox4.Text = ""
End If
End If
Catch ex As Exception
Timer1.Stop()
MsgBox("Invalid RFID NO.!")
TextBox4.Text = ""
End Try
End Sub
我认为else
对您来说是最好的情况。我还从条件中移出了一些共享逻辑:
Timer1.Stop()
If y = 1 Then
Me.Hide()
MsgBox("VALID RFID! WELCOME ADMIN!")
SystemForm.Show()
Else
Timer1.Stop()
MsgBox("Invalid RFID NO.!")
End If
TextBox4.Text = ""
从长远来看,我还将进行很多其他更改,包括对您的查询使用SELECT COUNT(rfid)
,它将始终返回一个数字,并且通常实际上与ADODB
背道而驰,但是以上应该可能会得到您想要的。