Click here to Skip to main content
15,886,069 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
VB.NET
str = "Insert Into Bookee([Staff] , [Full Name], [Contact Number], [Email] , [Resource], [Period], [Date])Values(?,?,?,?,?,?,?)"
Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection) 'This allows me to assign values to the fields using what the user input'
cmd.Parameters.Add(New OleDbParameter("Staff", CType(CBStaffName.Checked, Boolean))) 'This adds the value of the checkbox in the matching field and sets the variable type'
cmd.Parameters.Add(New OleDbParameter("Full Name", CType(TxtBoxFullName.Text, String))) 'This adds the value of the each textbox in the matching field and sets the variable type'
cmd.Parameters.Add(New OleDbParameter("Contact Number", CType(TxtBoxContactNumber.Text, String))) 'This adds the value of the each textbox in the matching field and sets the variable type'
cmd.Parameters.Add(New OleDbParameter("Email", CType(TxtBoxEmail.Text, String))) 'This adds the value of the each textbox in the matching field and sets the variable type'
cmd.Parameters.Add(New OleDbParameter("Period", CType(TxtBoxPeriod.Text, Integer))) 'this adds the Period textboxes value to the database'
cmd.Parameters.Add(New OleDbParameter("Date", CType(DateTimePicker1.Text, Date)))
cmd.Parameters.Add(New OleDbParameter("Resource", CType(TxtBoxResource.Text, String)))


What I have tried:

I have tried changing the datatypes in the database to match those in the Code but it still doesn't work when i attempt to save the data to the microsoft access database
Posted
Updated 13-Feb-18 7:33am
v2

1 solution

OK, you don't need all the CType crap. It's not doing anything for you at all, other than trying to convert a type to the SAME TYPE IT ALREADY IS!

What it's screaming about is that you never said what each parameter type is supposed to be. For example, the Text property always returns a string, so why are you converting it to a string? Get rid of all that crap.

Also, you can simplify the code a bit just by using AddWithValue. It will take a "best guess" as the DbType by looking at the type of the variable you passed in, like a String, Integer, or DateTime.

VB.NET
str = "Insert Into Bookee([Staff] , [Full Name], [Contact Number], [Email] , [Resource], [Period], [Date])Values(?,?,?,?,?,?,?)"

'This allows me to assign values to the fields using what the user input
Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection) 

'This adds the value of the checkbox in the matching field and sets the variable type
cmd.Parameters.AddWithValue("Staff", CBStaffName.Checked)

'This adds the value of the each textbox in the matching field and sets the variable type
cmd.Parameters.AddWithValue("Full Name", TxtBoxFullName.Text)

'This adds the value of the each textbox in the matching field and sets the variable type
cmd.Parameters.AddWithValue("Contact Number", TxtBoxContactNumber.Text)

'This adds the value of the each textbox in the matching field and sets the variable type
cmd.Parameters.AddWithValue("Email", TxtBoxEmail.Text)

cmd.Parameters.AddWithValue("Resource", TxtBoxResource.Text)

'this adds the Period textboxes value to the database
Dim value As Integer = Integer.Parse(TxtBoxPeriod.Text)
cmd.Parameters.AddWithValue("Period", value)

cmd.Parameters.AddWithValue("Date", DateTimePicker1.Value)
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900