I'm trying to updatesome records, currently my table is blank apart from the user id which is correct. but i get the error below.

My UserSettings table is as follows

ID is a Integer
MonthID is a Integer
YearID is a Integer
UserName is a string
Balance is a Integer
PhotoAddress is a string
GameSpeed is a Integer

This is my code and below that is my error in my ErrorTXT box.

Anyidea what is wrong?

vb.net Code:
  1. Try
  2.  
  3.             Using connection As New OleDb.OleDbConnection(My.Settings.AirlineConnectionString)
  4.                 Using command As New OleDb.OleDbCommand("UPDATE UserSettings SET MonthID = @MonthID, YearID = @YearID, UserName = @UserName, Balance = @Balance, PhotoAddress = @PhotoAddress, GameSpeed = @GameSpeed WHERE UserID = " & CInt(GameMainWindow.ValuesUserIDTxt.Text), connection)
  5.                     connection.Open()
  6.  
  7.                     command.Parameters.AddWithValue("@ID", CInt(GameMainWindow.ValuesUserIDTxt.Text))
  8.                     command.Parameters.AddWithValue("@MonthID", CInt(GameMainWindow.ValuesGameMonthTxt.Text))
  9.                     command.Parameters.AddWithValue("@YearID", CInt(GameMainWindow.ValuesGameYearTxt.Text))
  10.                     command.Parameters.AddWithValue("@UserName", GameMainWindow.ValuesUserNameTxt.Text)
  11.                     command.Parameters.AddWithValue("@Balance", CInt(GameMainWindow.ValuesBalanceTxt.Text))
  12.                     command.Parameters.AddWithValue("@PhotoAddress", GameMainWindow.ValuesPhotoAddressTxt.Text)
  13.                     command.Parameters.AddWithValue("@GameSpeed", CInt(GameMainWindow.ValuesGameSpeedTxt.Text))
  14.  
  15.                     command.ExecuteNonQuery()
  16.                     connection.Close()
  17.                 End Using
  18.             End Using
  19.  
  20.         Catch ex As Exception
  21.             GameMainWindow.ErrorTXT.Text = ex.ToString
  22.         End Try


Code:
System.Data.OleDb.OleDbException: Data type mismatch in criteria expression.
   at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
   at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
   at Airline_Sim.MainMod.SaveGame() in C:\Documents and Settings\Me\My Documents\Visual Studio 2008\Projects\Airliine Sim\Airliine Sim\GameData\MainMod.vb:line 25