大家好!我想使用日期时间选择器记录员工的时间和时间。节省时间是好的,但是时间不会保存。我必须按下标记为Time in和Time out的按钮。我想要做的是当我按下超时按钮时我想记录所述员工的时间。我希望有人可以帮助我,我仍然在网上搜索,但似乎没有任何工作。先谢谢你们!
我的代码看起来像这样。
cmd.CommandText = "INSERT INTO timelogTB (Time_Out) select Time_Out from timelogTB WHERE EmpNo= '" & comboxEmpno.Text & "'" & _
"VALUES (@Time_Out)"
'add parameters
With cmd.Parameters
.Add(New SqlParameter("@Time_Out", dtpTime.Value.TimeOfDay))
End With
答案 0 :(得分:0)
使用Update
,因为员工行已存在于数据库中,并使用WHERE
条件将时间保存在正确的用户行中。
并将SqlParameters用于您在查询中使用的所有值。
cmd.CommandText = "UPDATE timelogTB SET Time_Out = @Time_Out WHERE EmpNo=@EmpNo"
Dim parameters As SqlParameter() =
{
New SqlParameter With
{
.ParameterName = "@Time_Out",
.SqlDbType = SqlDbType.DateTime,
.Value = dtpTime.Value.TimeOfDay
},
New SqlParameter With
{
.ParameterName = "@EmpNo",
.SqlDbType = SqlDbType.VarChar,
.Value = comboxEmpno.Text
}
}
cmd.Parameters.AddRange(parameters)
' Execute query
正如Zohar Peled所注意到的,如果timelogTB
表包含不同日期的输入输出时间,则需要添加更多WHERE
条件以更新正确的行。
例如,您只需要更新Time_Out
为空的行。
"UPDATE timelogTB SET Time_Out = @Time_Out WHERE EmpNo=@EmpNo AND Time_Out IS NULL"