我正在創建一個虛擬時鐘,以便員工可以跟蹤整個月的作業時間。用戶將按下螢屏上的按鈕,該按鈕將在他們打卡時啟動/停止計時器。此函式的示例代碼如下:
Private CAstopwatch As New Stopwatch
Private Sub timerca_tick(sender As Object, e As EventArgs) Handles Timerca.Tick
Dim elapsed As TimeSpan = CAstopwatch.Elapsed
CATimer.Text = String.Format("{000:00}:{1:00}",
Math.Floor(elapsed.TotalHours),
elapsed.Minutes)
End Sub
Private Sub CAButton_Click(sender As Object, e As EventArgs) Handles CAButton.Click
If CAButton.BackColor = Color.Silver Then
CAButton.BackColor = Color.Red
Timerca.Start()
CAstopwatch.Start()
ElseIf CAButton.BackColor = Color.Red Then
CAButton.BackColor = Color.Silver
Timerca.Stop()
CAstopwatch.Stop()
End If
End Sub
這段代碼作業正常,但在應用程式關閉的情況下,我想將資訊保存到訪問資料庫,以便在需要時可以恢復。
目前,我只是通過按一下按鈕來測驗它以保存執行以下代碼的資料
Private Sub TestButton_Click(sender As Object, e As EventArgs) Handles TestButton.Click
'connects application to database
Dim ConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\DataPath\Database.accdb"
Dim SqlString As String = "update SaintStaff set StaffHours = @CAHours, RecordedTime = @Time, RecordedDate = @Date where StaffName = @Staffname "
'updates record in SaintStaff table.
Using conn As New OleDbConnection(ConnString)
conn.Open()
Using cmd As New OleDbCommand(SqlString, conn)
cmd.CommandType = CommandType.Text
cmd.Parameters.Add("@CAHours", OleDbType.VarChar).Value = CATimer.Text
cmd.Parameters.Add("@Time", OleDbType.VarChar).Value = CurrentTime.Text
cmd.Parameters.Add("@Date", OleDbType.VarChar).Value = CurrentDate.Text
cmd.Parameters.Add("@Staffname", OleDbType.VarChar).Value = CAStaff.Text
cmd.ExecuteNonQuery()
End Using
conn.Close()
End Using
End Sub
我可以毫無問題地記錄日期和時間,但出現“條件運算式中的資料型別不匹配”。嘗試記錄計時器文本時出錯。作為測驗,我創建了一個新標簽并將其設定為 CATimer.Text = Label.Text,因此當計時器更新時,它也會更新標簽。如果我更改上面的代碼以保存 label.text 而不是 CATimer.text 它可以作業。顯然它不喜歡記錄計時器,但我不知道是什么。有人有想法么?
此外,不是在按下按鈕時處理此更新命令,有沒有辦法讓這種情況每分鐘自動發生一次?
謝謝
uj5u.com熱心網友回復:
始終將日期和時間存盤為DateTime,而不是文本,并且沒有理由拆分此資訊。
因此,將RecordedTime 的資料型別更改為DateTime,跳過 _RecordedDate,并將這兩行替換為一行:
cmd.Parameters.Add("@Time", OleDbType.Date).Value = DateTime.Now
uj5u.com熱心網友回復:
原來這是一個錯誤:資料庫欄位被設定為整數,顯然不會接受 .text 欄位輸入。我將欄位型別更改為文本并已解決。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/378779.html
