标准中的数据类型不匹配 [英] Data type mismatch in the criteria

查看:130
本文介绍了标准中的数据类型不匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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)))





我尝试过:



我试过更改数据库中的数据类型匹配代码中的那些,但当我尝试将数据保存到microsoft访问数据库时它仍然不起作用



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

推荐答案

好的,你不需要全部CType废话。除了尝试将类型转换为相同的类型之外,它根本没有为你做任何事情!



它的尖叫是你从来没有说过什么应该是每个参数类型。例如,Text属性总是返回一个字符串,那么为什么要将它转换为字符串?摆脱所有废话。



此外,您可以通过使用AddWithValue简化代码。通过查看传入的变量类型(如String,Integer或DateTime),它将以最佳猜测作为DbType。



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.

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)


这篇关于标准中的数据类型不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆