从VB.NET更新Access数据库时数据类型不匹配错误

时间:2014-06-13 10:03:31

标签: vb.net ms-access-2007 type-mismatch oledbexception

cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Steve\Documents\Visual Studio 2010\Projects\Church Of Glory\Church Of Glory\Registry.accdb"
cmd.CommandText = "update Registry set relaship = '" + ComboBox3.Text + "',fathnam = '" + fathnam.Text + "',dob = '" & DateTimePicker1.Value & "',age = '" + age.Text + "',addr = '" + addr.Text + "',area = '" + areas.Text + "',city = '" + city.Text + "',zipc = '" + pinc.Text + "',conta = '" + cnct.Text + "',email = '" + email.Text + "',occup = '" + occu.Text + "',bap_stat = '" + bap_stat + "',bap_dat = '" & DateTimePicker2.Value & "',mar_stat = '" + mar_stat + "',mar_dat = '" & DateTimePicker3.Value & "',gen = 'Male' where fnam = '" + ComboBox2.Text + "' and lnam = '" + ComboBox1.Text + "'"
cmd.Connection = cn
cn.Open()
cmd.ExecuteNonQuery()
MsgBox("Update Successful")
cn.Close()

此代码在我的系统中运行完美..但它说

  

oledb异常未处理"数据类型不匹配"

当我复制代码并在我兄弟的计算机上执行时...我小心地改变了数据源路径...我只是一个初学者..所有字段类型都是文本,除了日期..我还有一个字段,这是一个自动编号,我不想在我的更新查询..所以我离开了..

1 个答案:

答案 0 :(得分:0)

它很可能与日期有关。没有冒犯,但在更新数据库表时,该代码非常业余。

你应该为日期提供更好的条件;既然你提到了与另一台计算机的不同之处,那么它通常与两台PC之间的日期/时间格式不同有关。显然,跨国家/地区更常见,但请检查控制面板中两台计算机之间的日期/时间格式以确定。

有权访问PC的人可能会提供更好的答案!