0

私は2つのフォームを持っています

最初のフォームは

Public Class frmMain

Friend strBillIDNumber As String
Friend strBillPassword As String
Friend ds As New DataSet
Friend cnn As OleDbConnection
Friend sql As String
Friend adptr As OleDbDataAdapter
Dim attempt As Integer = 1

Private Sub btnSign_Click(sender As Object, e As EventArgs) Handles btnSign.Click

    Dim connectionString As String
    connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Renz\Documents\Visual Studio 2012\FINAL\Database\UsersDB.accdb;"
    sql = "Select ID, LASTNAME, FIRSTNAME, LOGINSTATUS from TblUser"
    cnn = New OleDbConnection(connectionString)
    Try
        cnn.Open()
        adptr = New OleDbDataAdapter(sql, cnn)
        adptr.Fill(ds)



        For i = 0 To ds.Tables(0).Rows.Count - 1

            If ds.Tables(0).Rows(i).Item(0) = txtID.Text Then
                MessageBox.Show("UserName Matched")
                If ds.Tables(0).Rows(i).Item(1) = txtPassword.Text Then
                    MessageBox.Show("Password Matched")

                    If txtPassword.Text = "admin" Then
                        MessageBox.Show("You are now Logged In as Admin.")
                        frmFaculty.Show()
                        Me.Hide()
                    Else
                        frmStudent.lblSI.Text = ds.Tables(0).Rows(i).Item(0)
                        frmStudent.lblLN.Text = ds.Tables(0).Rows(i).Item(1)
                        frmStudent.lblFN.Text = ds.Tables(0).Rows(i).Item(2)
                        frmStudent.lblLS.Text = ds.Tables(0).Rows(i).Item(3)
                        MessageBox.Show("You are now Logged In.")
                        frmStudent.Show()
                        Me.Hide()
                    End If
                Else
                    MessageBox.Show("Invalid Password.")
                    MessageBox.Show("Please Try Again." & vbNewLine & "ATTEMPT: " & attempt & " out of 3")
                    attempt = attempt + 1
                End If
            End If

        Next

        adptr.Dispose()
        cnn.Close()
    Catch ex As Exception
        MessageBox.Show("Please Try Again!")
    End Try

    'log-in attempt 3x fail'
    If attempt > 3 Then
        MessageBox.Show("You have exceeded the number of login attempt." & vbNewLine & "Please Contact the Administrator.")
    End If
End Sub

そして私の第二の形態は

Imports System.Data.OleDb

Public Class frmStudent
Dim TimeInHold As String
Private Sub loginBTN_Click(sender As Object, e As EventArgs) Handles loginBTN.Click

    Dim cnn2 As New OleDbConnection
    Dim Command As OleDbCommand
    Dim i As Integer
    Dim sql2 As String
    Dim status As String

    Try
        cnn2 = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Renz\Documents\Visual Studio 2012\FINAL\Database\AuditDB.mdb;")
        cnn2.Open()

        sql2 = "INSERT INTO Audit ([ID],[TIMEIN]) VALUES('" & frmMain.txtID.Text & "','" & DateTime.Now & "')"

        Command = New OleDbCommand(sql2, cnn2)
        i = Command.ExecuteNonQuery

    Catch ex As Exception
        cnn2.Close()

    End Try

    MessageBox.Show("You have successfully Signed in." & vbNewLine & " Please Don't Forget to Logout.")
    frmMain.cnn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Renz\Documents\Visual Studio 2012\FINAL\Database\UsersDB.accdb;")
    frmMain.cnn.Open()
    frmMain.adptr = New OleDbDataAdapter(frmMain.sql, frmMain.cnn)
    frmMain.adptr.Fill(frmMain.ds)
    If frmMain.ds.Tables(0).Rows(i).Item(0) = lblSI.Text Then
        frmMain.sql = "UPDATE TblUser SET LOGINSTATUS = 'SignedIn'"

        frmMain.cnn.Close()
    End If
    Me.Close()
    frmMain.Show()
    frmMain.txtID.Text = String.Empty
    frmMain.txtPassword.Text = String.Empty
End Sub

フォーム 1 からデータ セットを取得する SELECT および UPDATE SQL ステートメントを機能させることができません。ボタンをクリックすると、フィールド "LoginStatus" が "Signed In" の値に更新されます。

PS私は、ユーザーが管理者か学生かを判断し、対応するフォームにリダイレクトするタイムアウト監視システムを作成しています。学生フォームにはサインインとサインアウトのボタンがあり、時間の入力とタイムアウトが記録されます。サインインをクリックするとグレー表示になります。

助けてください..

4

2 に答える 2

0

2 番目の形式で executeNonQuery が欠落していると思います。ユーザーが 1 人しかいない場合、複数のユーザーが「Where 句」の使用を検討している場合、クエリは問題ありません。

sql= "UPDATE TblUser SET LOGINSTATUS = 'SignedIn' where ID =" <provide id>

それでも問題が解決しない場合は、お気軽にお問い合わせください。

よろしく。

于 2013-10-07T11:03:54.267 に答える