2015-09-26 82 views
0
Private Sub DTRTimeOutBTN_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DTRTimeOutBTN.Click 
     con = New OleDbConnection(cs) 
     con.Open() 

     Dim cmd As OleDbCommand = New OleDbCommand("UPDATE Worker_Attendance SET Time_Out = @TOut WHERE @TOut = null", con) 
     cmd.Parameters.AddWithValue("@TOut", lblTime.Text.ToString) 
     cmd.ExecuteNonQuery() 
     DTRTimeOutBTN.Enabled = False 
     DTRTimeInBTN.Enabled = True 
     con.Close() 
    End Sub 

大家好,任何人都可以帮助我吗?当我点击超时按钮时,它应该根据代码存储当前的计算机时间,因为@TOut是空的。但是当单击超时按钮时,数据库中没有任何内容存储。使用UPDATE语句时序输出

+0

'@ Tout'永远不会为空,因为您正在对永不会返回null的字符串值调用'ToString'。另外,'@TNull = null'永远不会是真的。还有一件事与你的查询无关。 –

回答

0

我不知道您的超时问题,但对于您的查询,您需要使用IS NULL来检查值是否为空。

UPDATE Worker_Attendance 
SET Time_Out = @TOut 
WHERE Time_Out IS NULL 
+0

现在是超时。但问题是整个Time_Out列正在更新等于计算机当前时间,当我单击超时按钮。 –

+0

您想要存储**新记录**吗?目前,您正在更新**所有**记录,其中** Time_Out **列是** NULL **(至少应该与我上面的查询一致)。 –

+0

如何防止所有记录在Time_Out列中更新? –