Reputation: 13
When I click on my Update
button the below function is called but the DB is not updating. The syntax is correct but i cannot figure it out where I'm missing something. Any suggestion?
Private Sub UpDateRecord()
Dim connString As String = ConfigurationManager.ConnectionStrings("dbx").ConnectionString
Dim cmdString As String = "UPDATE hpn " & _
"SET " &_
"Day = @Day, " & _
"FullName =@FullName, " & _
"Balance = @Balance, " & _
"Deposit = @Deposit, " & _
"Withdraw = @Withdraw, " & _
"CashIn = @CashIn, " & _
"CashOut = @CashOut, " & _
"Spend = @Spend, " & _
"Total = @Total " & _
"WHERE ID = @ID"
Using conn As New OleDbConnection(connString)
conn.Open() 'conn.Open() before creating OleDbCommand Obj
Using cmd As New OleDbCommand(cmdString, conn)
cmd.Parameters.AddWithValue("@Day", TextBox1.Text)
cmd.Parameters.AddWithValue("@FullName", TextBox2.Text)
cmd.Parameters.AddWithValue("@Balance", TextBox3.Text)
cmd.Parameters.AddWithValue("@Deposit", TextBox4.Text)
cmd.Parameters.AddWithValue("@Withdraw", TextBox5.Text)
cmd.Parameters.AddWithValue("@CashIn", TextBox6.Text)
cmd.Parameters.AddWithValue("@CashOut", TextBox7.Text)
cmd.Parameters.AddWithValue("@Spend", TextBox8.Text)
cmd.Parameters.AddWithValue("@Total", TextBox9.Text)
cmd.Parameters.AddWithValue("@ID", Me.ID)
End Using
End Using
End Sub
Upvotes: 0
Views: 55
Reputation: 953
How is it supposed to update the DB if you are not calling OleDbCommand.ExecuteNonQuery()
?
Code fixed:
Using conn As New OleDbConnection(connString)
conn.Open() 'conn.Open() before creating OleDbCommand Obj
Using cmd As New OleDbCommand(cmdString, conn)
cmd.Parameters.AddWithValue("@Day", TextBox1.Text)
cmd.Parameters.AddWithValue("@FullName", TextBox2.Text)
cmd.Parameters.AddWithValue("@Balance", TextBox3.Text)
cmd.Parameters.AddWithValue("@Deposit", TextBox4.Text)
cmd.Parameters.AddWithValue("@Withdraw", TextBox5.Text)
cmd.Parameters.AddWithValue("@CashIn", TextBox6.Text)
cmd.Parameters.AddWithValue("@CashOut", TextBox7.Text)
cmd.Parameters.AddWithValue("@Spend", TextBox8.Text)
cmd.Parameters.AddWithValue("@Total", TextBox9.Text)
cmd.Parameters.AddWithValue("@ID", Me.ID)
cmd.ExecuteNonQuery() 'THIS IS THE LINE YOU WERE MISSING
End Using
conn.Close() 'YOU FORGOT TO CLOSE THE CONNECTION
End Using
This code was full of mistakes:
Using
OleDbCommand.ExecuteNonQuery()
so all parameters was set but the query wasn't executed.Upvotes: 2