Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在vb.net中插入同一表和同一行中的数据_Sql Server_Vb.net - Fatal编程技术网

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