我正在创建一个员工计时表,他们必须通过按下timein和timeout按钮来插入他们的计时表。对于timein,我在数据库中为该人员创建了一条新记录,对于超时,我正在使用UPDATING命令更新该现有记录。这里是我的代码:VB.NET:更新Ms Access中的记录
Dim cb As New OleDb.OleDbCommandBuilder(ssda)
cb.QuotePrefix = "["
cb.QuoteSuffix = "]"
con.ConnectionString = dbProvider & dbSource
con.Open()
Dim str As String
str = "UPDATE emp_timing SET emp_timing.emp_timeout = '" & OnlyTime & "' WHERE (((emp_timing.emp_code)='" & TextBox1.Text & "') AND ((emp_timing.day)=" & Now.ToString("MM/dd/yyyy") & "))"
Dim cmd As OleDbCommand = New OleDbCommand(str, con)
Try
cmd.ExecuteNonQuery()
cmd.Dispose()
con.Close()
MsgBox("Data added")
TextBox1.Clear()
TextBox2.Clear()
TextBox1.Focus()
ComboBox1.SelectedIndex = -1
Catch ex As Exception
MsgBox(ex.Message)
End Try
我的代码工作正常,但问题是它没有更新数据库中的记录。
Access中字段的数据类型: emp_code = Number,emp_timeout = Text,day = Date/Time。
这是因为你不使用参数,但你连接字符串离开转换到任何的区域设置为发生。 – Steve
我应该如何解决这个问题? @Steve –
您的字段是emp_timeout和datetime类型的日期吗? – Steve