Sql server 如何在vb.net中插入同一表和同一行中的数据
大家好!我想使用日期时间选择器记录员工的进出时间。节约时间是好的,但节约时间不会节约时间。我必须按标有“时间输入”和“时间输出”的按钮。我想做的是,当我按下超时按钮时,我想记录所述员工的时间。我希望有人能帮助我,我仍然在网上搜索,但似乎没有任何工作。提前谢谢各位 我的代码看起来像这样Sql server 如何在vb.net中插入同一表和同一行中的数据,sql-server,vb.net,Sql Server,Vb.net,大家好!我想使用日期时间选择器记录员工的进出时间。节约时间是好的,但节约时间不会节约时间。我必须按标有“时间输入”和“时间输出”的按钮。我想做的是,当我按下超时按钮时,我想记录所述员工的时间。我希望有人能帮助我,我仍然在网上搜索,但似乎没有任何工作。提前谢谢各位 我的代码看起来像这样 cmd.CommandText = "INSERT INTO timelogTB (Time_Out) select Time_Out from timelogTB WHERE EmpNo= '" & co
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
使用
Update
,因为数据库中已存在员工的行,并使用WHERE
条件在正确用户的行中节省时间。并对查询中使用的所有值使用SqlParameters。
cmd.CommandText=“UPDATE timelogTB SET Time\u Out=@Time\u Out,其中EmpNo=@EmpNo”
将参数设置为SqlParameter()=
{
使用新的SqlParameter
{
.ParameterName=“@Time\u Out”,
.SqlDbType=SqlDbType.DateTime,
.Value=dtpTime.Value.TimeOfDay
},
使用新的SqlParameter
{
.ParameterName=“@EmpNo”,
.SqlDbType=SqlDbType.VarChar,
.Value=comboxEmpno.Text
}
}
cmd.Parameters.AddRange(参数)
'执行查询
正如Zohar Peled所注意到的,如果timelogTB
表包含不同日期的输入输出时间,那么您需要添加更多WHERE
条件来更新正确的行。例如,您只需要更新
Time\u Out
为空的行
"UPDATE timelogTB SET Time_Out = @Time_Out WHERE EmpNo=@EmpNo AND Time_Out IS NULL"
您的sql语句毫无意义。你到底想做什么?它在一个命令按钮内,它将使用日期时间选择器记录时间。我想将它插入到已经有时间的员工的同一行中。请编辑你的问题以包括相关的表DDL语句。你不能插入到现有行中-这称为更新。这将更新所有记录那是这个雇员的。where子句不够好。保存的时间是这样的格式15:21:41.3761497如果没有毫秒,我如何保存它?您可以从
dtpTime.Value
中截断毫秒,例如:date=new date(dtpTime.Value.Ticks-(dtpTime.Value.Ticks Mod TimeSpan.TicksPerSecond))<或代码>或考虑将数据库列的类型更改为<代码> SimeDeaTime< /Cord>。但在这种情况下,秒也将被截断。日期也被保存。我只想节省时间,因为我有一个单独的日期列。使用新的“截断”日期的TimeOfDay
。