当用户不从mysql在入口扫描时阻止在出口扫描的数据

s5a0g9ez  于 2021-06-25  发布在  Mysql
关注(0)|答案(0)|浏览(259)

早上好,我需要帮助与我的vb.net应用程序,这是使用rfid阅读器rc522和arduino uno,一切都很好,并已就卡扫描功能。当扫描卡片时,数据库中的数据会被检索出来并显示在界面屏幕上,我有两个rfid,分别位于门、入口和出口,还有一个服务器数据库来保存登录的学生和退出的学生。现在的问题是学生没有在入口扫描他/她的rfid卡,当学生在出口扫描自己的id时,错误会显示在出口界面。有没有办法在出入口前先把没有扫描rfid的学生堵在门口?谢谢,这是我的密码

Private Sub Students_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    loadtable()
    ''Date Now 
    Timer2.Start()

    logins.ForeColor = Color.White
    Try

        With DataGridView1
            .AllowUserToAddRows = False ' Disabled or hide (*) Symbol...

            .RowHeadersVisible = False 'To hide Left indicator..
            .DefaultCellStyle.SelectionBackColor = Color.SteelBlue  'Selection backcolor....
            .AlternatingRowsDefaultCellStyle.BackColor = Color.LightGoldenrodYellow 'Alternating Backcolor.
            .AllowUserToResizeRows = False 'Disabled  row resize...
            .ReadOnly = True
            .MultiSelect = False
            .SelectionMode = DataGridViewSelectionMode.FullRowSelect
            .ShowRowErrors = False
            .ShowCellErrors = False
            .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill

        End With

    Catch ex As Exception

    End Try

    ''The combobox filled with serial ports available

    comPORT = ""
    For Each sp As String In My.Computer.Ports.SerialPortNames
        comPort_ComboBox.Items.Add(sp)
    Next
    ''Paglalagay ng collections

End Sub

''FFor Replacing the textbox for a new card

Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

    Dim StringIn As String = SerialPort1.ReadLine()
    StringIn = StringIn.Replace(Chr(10), "").Replace(Chr(13), "")
    Me.Invoke(Sub() studtag.Text = StringIn) 'we need to invoke since we're on another thread

End Sub

Public Sub insert()

    con = New MySqlConnection
    con.ConnectionString = "server=localhost;userid=root;password=1234;database=dat"
    Dim reader As MySqlDataReader
    Dim mstream As New System.IO.MemoryStream()

    Dim arrImage() As Byte = mstream.GetBuffer()
    mstream.Close()

    Try

        con.Open()
        Dim query3 As String

        query3 = "insert into dat.studlogs (studtags,idno,lastxt,firstxt,middletxt,dob,log,timein,crse,studpic) values ('" & tagtxt.Text & "','" & idno.Text & "','" & lastxt.Text & "','" & firstxt.Text & "','" & middletxt.Text & "','" & dob.Text & "','" & log.Text & "','" & timein.Text & "','" & crsetxt.Text & "',@studpic)"
        cmd = New MySqlCommand(query3, con)
        cmd.Parameters.AddWithValue("@studpic", arrImage)
        reader = cmd.ExecuteReader

        con.Close()
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    Finally
        con.Dispose()
    End Try

End Sub
 Public Sub loadtable()

    con = New MySqlConnection
    con.ConnectionString = "server=localhost;userid=root;password=1234;database=dat"
    Dim SDA As New MySqlDataAdapter
    Dim dbDataset As New DataTable
    Dim bSource As New BindingSource

    Try

        con.Open()
        Dim query3 As String

        query3 = "select idno as 'Student_ID',lastxt as 'LastName',firstxt as 'FirstName',middletxt as 'MiddleName',log as 'Status',timein as 'Timein',crse as 'Course' from dat.studlogs"
        cmd = New MySqlCommand(query3, con)
        SDA.SelectCommand = cmd
        SDA.Fill(dbDataset)
        bSource.DataSource = dbDataset
        DataGridView1.DataSource = bSource
        SDA.Update(dbDataset)

        DataGridView1.Sort(DataGridView1.Columns(5), System.ComponentModel.ListSortDirection.Descending)

        If dbDataset.Rows.Count > 0 Then
            logins.Text = dbDataset.Rows.Count.ToString()
        End If

        con.Close()
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    Finally
        con.Dispose()
    End Try
End Sub

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
    bday.Text = Date.Now.ToString("MMMM d")
    datenow.Text = Date.Now.ToString("MMMM d, yyyy")
    times.Text = TimeOfDay.ToString("h:mm:ss tt")
    wholedate.Text = Now
End Sub

“这是扫描结果

Private Sub studtag_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles studtag.TextChanged

    Notenrolled.Close()
    greet.Text = ""
    PictureBox4.Visible = False

    If studtag.Text = "44F2F38B" Then

        Endday()

    End If

    If studtag.TextLength = 8 Then

        DataGridView1.Sort(DataGridView1.Columns(6), System.ComponentModel.ListSortDirection.Descending)
        con = New MySqlConnection
        con.ConnectionString = "server=localhost;userid=root;password=1234;database=dat"
        Dim query As String

        query = "select * from dat.students"
        cmd = New MySqlCommand(query, con)

        Dim table As New DataTable

        Try
            con.Open()
            'Gets or sets an SQL statement or stored procedure used to select records in the database.
            With cmd
                .Connection = con
                .CommandText = "SELECT * from students where `studtags`='" & studtag.Text & "';"
            End With
            da.SelectCommand = cmd
            da.Fill(table)
            'it gets the data from specific column and fill it into Label

            idno.Text = table.Rows(0).Item(1)
            lastxt.Text = table.Rows(0).Item(2)
            firstxt.Text = table.Rows(0).Item(3)
            middletxt.Text = table.Rows(0).Item(4)
            dob.Text = table.Rows(0).Item(6)
            year.Text = table.Rows(0).Item(7)
            crsetxt.Text = table.Rows(0).Item(10)

            tagtxt.Text = studtag.Text
            timein.Text = times.Text

            dr = cmd.ExecuteReader()
            dr.Read()

            If dob.Text = bday.Text Then
                greet.Text = firstxt.Text + " Today is your Birthday. Greetings :D."
                PictureBox4.Visible = True

            End If

            Dim img() As Byte = CType(dr("studpic"), Byte())

            Using ms As New IO.MemoryStream(img)
                PictureBox1.Image = Image.FromStream(ms)

            End Using
            insert()
            loadtable()
            studdailyhistory()

        Catch ex As Exception
            Notenrolled.Show()
            DataGridView1.Sort(DataGridView1.Columns(5), System.ComponentModel.ListSortDirection.Descending)
            If studtag.Text = "44F2F38B" Then
                Notenrolled.Close()
            End If

        Finally

            con.Dispose()
            con.Close()

        End Try

    End If

End Sub

输出代码与输入代码几乎相同。谢谢您。如果你对此有任何疑问,请随时问我。非常感谢你的建议和回答。留我作最后的辩护。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题