2017-01-02 47 views
0

大家好!我想记录使用日期时间选择器的员工的时间和时间。节省时间是好的,但时间不会节省。我必须标记时间和超时按钮。我想要做的是当我按下超时按钮时,我想记录该员工的时间。我希望有人可以帮助我,我仍然在互联网上搜索,但似乎没有任何工作。在此先感谢你们!如何在vb.net的同一张表和行中插入数据

我的代码看起来像这样。

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

你的sql语句没有任何意义。你到底想做什么? –

+0

它是在一个命令按钮中,它会记录使用日期时间选择器的时间,我想将它插入到已经有时间的员工的同一行中。 – AtanHokage04

+0

请编辑您的问题以包含相关的表DDL语句。 –

回答

0

使用Update因为行员工在数据库中已存在并使用WHERE条件,以节省出时间在正确的用户的行。
并使用SqlParameters查询您在查询中使用的所有值。

cmd.CommandText = "UPDATE timelogTB SET Time_Out = @Time_Out WHERE [email protected]" 
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 

而作为琐佩莱德注意到,如果timelogTB表包含不同日子的输入输出时间,那么你需要添加更多的WHERE条件更新正确的行。
例如,只需要更新行Time_Out为空。

"UPDATE timelogTB SET Time_Out = @Time_Out WHERE [email protected] AND Time_Out IS NULL" 
+0

它的工作非常感谢你法比奥。 – AtanHokage04

+1

这将更新属于该员工的所有记录。 Where子句不够好。 –

+0

节省的时间是以这种格式15:21:41.3761497如何在毫秒内保存它? – AtanHokage04

相关问题