2017-01-02 66 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

相關問題