2015-09-26 56 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列中更新? –