Hi guys, I'm making a system where the user is able to log in, edit their account and etc.
Currently, I'm having trouble with trying to update the customer's account details such as their first name, surname and so on. The error I'm getting is an "OleDbException was unhandled - Syntax error in UPDATE statement" every time the program tries to execute the non-query code.
Below is my code:
The methods I've used have been:
Parameters
[ ] Square Brackets as shown in the code
A few other minor methods which I don't remember exactly
The methods pretty much still gave me a Syntax error with the Update statement. I'm not exactly certain what might be causing this and therefore I wondered if anyone would be able to help me spot it out, thanks!
Currently, I'm having trouble with trying to update the customer's account details such as their first name, surname and so on. The error I'm getting is an "OleDbException was unhandled - Syntax error in UPDATE statement" every time the program tries to execute the non-query code.
Below is my code:
Public Class EditCustAcc
Dim EditAccConnect As New OleDb.OleDbConnection
Dim EditAccSet As New DataSet
Dim EditAccTable As New DataTable
Dim EditAccAdapt As New OleDb.OleDbDataAdapter
Dim EditAccBuilder As OleDb.OleDbCommandBuilder = Nothing
Dim EditAccCommand As New OleDb.OleDbCommand
Dim UpdateStr As String
Dim CustIdentifier As Integer
Dim Maxrows As Integer = -1
Private Sub EditCustAcc_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i As Integer
If MainMenuForm.AccountStatus = True Then
EditAccConnect.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Prototypeofthing\prototype.mdb"
EditAccConnect.Open()
EditAccSet.Tables.Add(EditAccTable)
EditAccAdapt = New OleDb.OleDbDataAdapter("SELECT * FROM tblCustAcc", EditAccConnect)
EditAccAdapt.Fill(EditAccTable)
Try
For i = 0 To EditAccTable.Rows.Count
If EditAccTable.Rows(i) Is Nothing Then
Else
Maxrows = Maxrows + 1
End If
Next
Catch ex As Exception
End Try
Try
For i = 0 To Maxrows
If UCase(MainMenuForm.CustUsername) = UCase(EditAccTable.Rows(i).Item(1)) Then
CustIdentifier = EditAccTable.Rows(i).Item(0)
txtFirst.Text = EditAccTable.Rows(i).Item(3)
txtSur.Text = EditAccTable.Rows(i).Item(4)
txtHouseNum.Text = EditAccTable.Rows(i).Item(5)
txtHouseAdd.Text = EditAccTable.Rows(i).Item(6)
txtPostCode.Text = EditAccTable.Rows(i).Item(7)
txtEmailAdd.Text = EditAccTable.Rows(i).Item(8)
Exit For
End If
Next
Catch ex As Exception
End Try
EditAccConnect.Close()
End If
End Sub
Private Sub cmdUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdUpdate.Click
EditAccConnect.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Prototypeofthing\prototype.mdb" 'Directory to databse'
EditAccConnect.Open() 'Opens the link to the database'
EditAccAdapt = New OleDb.OleDbDataAdapter("SELECT * FROM tblCustAcc", EditAccConnect)
EditAccAdapt.Fill(EditAccTable)
For i = 0 To Maxrows
If UCase(MainMenuForm.CustUsername) = UCase(EditAccTable.Rows(i).Item(1)) Then
UpdateStr = "UPDATE tblCustAcc SET ([First Name] =" & txtFirst.Text & ") WHERE CustomerID =" & CustIdentifier & ")"
EditAccCommand = New OleDb.OleDbCommand(UpdateStr, EditAccConnect)
EditAccCommand.ExecuteNonQuery() 'This is the part where the code stops working
EditAccCommand.Connection.Dispose()
Exit For
End If
Next
End Sub
End Class
The methods I've used have been:
Parameters
[ ] Square Brackets as shown in the code
A few other minor methods which I don't remember exactly
The methods pretty much still gave me a Syntax error with the Update statement. I'm not exactly certain what might be causing this and therefore I wondered if anyone would be able to help me spot it out, thanks!