我有2種形式選擇更新SQL不工作
第一種形式
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
我不能讓我的SELECT和UPDATE SQL語句將從表單1中獲取數據集的工作。單擊按鈕時,它會將「LoginStatus」字段更新爲「已簽入」值。
P.S.我正在創建一個闖入,超時監控系統,以確定用戶是管理員還是學生,並將其重定向到相應的表單。學生表格將登錄並註銷按鈕,並將記錄他們的時間和時間。點擊登錄時,它將變灰。
請幫助..
這是爲什麼在大寫。請重新格式化,這樣可讀 – Hogan
我做了一個編輯,等待審查。 – ps2goat
您需要了解['WHERE'子句](http://technet.microsoft.com/en-us/library/ms188047.aspx) - 當您嘗試在表中查找匹配的行時,正確的方法是要求SQL查找該行。這樣做的錯誤方法是編寫'For i = 0到ds.Tables(0).Rows.Count - 1'。您還需要(很快)瞭解參數,但是一旦您掌握了'WHERE'子句,至少您的'UPDATE'不會更改表中的每個*行。 –