-1
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 异常未处理“数据类型不匹配”

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

4

1 回答 1

0

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

您应该为日期提供更好的条件;由于您提到与另一台计算机的差异,因此通常与两台 PC 之间的日期/时间格式不同有关。显然,在不同国家/地区更常见,但请检查控制面板中两台计算机之间的日期/时间格式以确保确定。

可以使用 PC 的人可能会提供更好的答案!

于 2014-06-13T10:17:19.683 回答