iT邦幫忙

0

asp.net 設計打卡系統 , 如何讀取及寫入系統時間 ?

  • 分享至 

  • xImage


上圖的員工編號txtnumber與密碼txtpassword 驗證輸入正確後
我要在下面的紅圈處label3顯示員工姓名與時間
我的資料表有 ID,number,name,sex,on[上班時間],off[下班時間]
當輸入員工編號要如何轉換成資料表name的中文姓名顯示在紅圈處label3
同時插入一筆時間資料到資料表中呢 ?
我想到程式碼如下 , 但只能顯示員工編號
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
If Page.IsValid Then
Label3.Text = "編號:" & txtnumber.Text

End If
End Sub

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

6
kaowoei
iT邦研究生 4 級 ‧ 2012-08-07 13:21:42
最佳解答

deanya提到:
還有資料庫的時間寫入, 建議用 getDate() 這個資料庫函式...直接抓取資料庫時間~

推getDate()。
另外,紀錄上下班的資料和基本資料最好是要正規化比較好。
個人基本資料和流水帳放在一起,以後維護上會有問題。

另外我還想到跨日的問題,會不會有加班加到隔天,
在邏輯上就要判斷出,現在是昨天的下班還是今天的上班。
這些規則確定了就比較不會有BUG,當然這是延伸議題。

看更多先前的回應...收起先前的回應...
cmkung iT邦新手 5 級 ‧ 2012-08-09 13:17:14 檢舉

請問我在資料表com_on[上班時間]預設值或繫結是(getdate())
這樣有一筆資料就會顯示時間
可是要怎麼判斷上班只顯示上班時間 , 下班只顯示下班時間
因為com_on [上班時間]與com_off [下班時間]都設(getdate())
會只顯示一次登入時間 , 無法分辨上下班
還有當輸入使用者與密碼要去資料庫驗證 , 應該是在那個方面設定呢 ?

cmkung iT邦新手 5 級 ‧ 2012-08-09 13:27:16 檢舉

我改成出勤就好了只要一個欄位 , 這樣就可以不分上班與下班
至於使用者與密碼去資料庫驗證正確後 , 才會顯示出勤時間
則還沒想到要怎麼做

外獅佬 iT邦大師 1 級 ‧ 2012-08-09 14:38:28 檢舉

cmkung提到:
com_off [下班時間]都設(getdate())

汗...如果要記錄下班時間...com_off應該不要設定預設值,等到下班打卡時再update

我們的做法是, 紀錄員工所有進出入系統的時間...
然後再取第一筆和最後一筆的時間,
不過加班跨日的部份就要看HR的定義了... XD

cmkung iT邦新手 5 級 ‧ 2012-08-13 09:29:23 檢舉

請問使用者與密碼去資料庫驗證正確後 , 才可顯示出勤時間
這方面要如何去設定呢 ?

<pre class="c" name="code">IF (SELECT count(*) FROM 資料表名稱 WHERE 驗證條件...) > 1
BEGIN
SELECT 打卡時間 FROM 資料表名稱 WHERE 驗證條件...
END

詳細 SQL 用法請參考 SQL IF判斷式
http://msdn.microsoft.com/en-us/library/ms182717.aspx

cmkung iT邦新手 5 級 ‧ 2012-08-14 15:25:11 檢舉

謝謝你這麼熱心回答

我的資料表名稱為 time 欄位 ID,number,name,sex,ontime,com_password
有兩個 textbox 員工編號 txtnumber 密碼 txtpassword
請問以下程式是寫在上圖紅圈處嗎 ? 下面程式對嗎 ?
if (select count(*) form time where txtnumber=number)>1
begin
select ontime from time where txtpassword=com_password
end

4
sam0407
iT邦大師 1 級 ‧ 2012-08-07 08:02:55

If Page.IsValid Then

'先到資料庫先去撈取您要的員工資料(密碼、員工姓名、性別等)
If 密碼=txtPassword.Text Then
'將使用者登入資訊寫入資料表
Label3.Text=員工姓名
EndIf
End If

看更多先前的回應...收起先前的回應...

還有資料庫的時間寫入, 建議用 getDate() 這個資料庫函式...直接抓取資料庫時間~ 不然員工可以調整自己的PC時間, 會有爭議~
P.S 話說...我的第一隻程式也是替我老爹公司寫的打卡程式 XD

cmkung iT邦新手 5 級 ‧ 2012-08-07 14:03:42 檢舉

謝謝你們這麼熱心回答 , 我改成以下程式對嗎 ?
我的資料表名稱為 time
共有以下欄位 ID,com_number,com_name,com_sec,com_on,com_off,com_password

If Page.IsValid Then
select * from time;
SELECT GETDATE() AS CurrentDateTime
if com_password=txtpassword.text then
insert into time (ID,com_number,com_name,com_sex,com_on,com_off,com_password)
label3.text=com_name
end if
end sub

咦, SQL 可以直接下在 VB @@

cmkung iT邦新手 5 級 ‧ 2012-08-08 14:36:40 檢舉

我也覺得不能 , 但SQL 與 VB 要如何連結呢 ?

外獅佬 iT邦大師 1 級 ‧ 2012-08-09 14:36:03 檢舉

如果要這麼做....可以考慮使用.net 4 的 Entity Framework
或者,Linq for SQL

我要發表回答

立即登入回答