C#登录时间的问题

智者潜行 2008-12-03 02:58:24
请问一下,我做了个登录的界面,用户每登录一次,都会记录用户登录的起始时间和结束时间,纪录到数据库,请问一下,起始时间好计算.

但是一个程序的关闭时间是怎么记录进去的.比如,有时候不是正常的退出,要如何计算呢?
或者说用存储过程做也可以.
...全文
420 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
llsen 2008-12-03
  • 打赏
  • 举报
回复
正常情况下
退出时记录
非正常时候,除非像他们说的再做一个监视进程的
然后记录

但本人觉得太麻烦了


我觉得如果非正常退出要记载的话
就在登陆时候
记录开始时间,结束时间都为当前时间
然后退出时更新结束时间
这样保证有数据

如果不为非记录的话
就不记了啊
sunny906 2008-12-03
  • 打赏
  • 举报
回复
登录的时候记录起始时间
Application.Exit()的时候记录结束时间
把起始时间和结束时间写入数据库
wfp5525 2008-12-03
  • 打赏
  • 举报
回复
支持4楼
智者潜行 2008-12-03
  • 打赏
  • 举报
回复
不是网站的,是应用程序
tnchenkui 2008-12-03
  • 打赏
  • 举报
回复
这个问题我也同感..一直找答案
ZM27080401 2008-12-03
  • 打赏
  • 举报
回复
楼上的启发,你可以直接使用timer,lms触发一次tick,把当前时间记录在一个文本里,如XML或是txt(最好不要往数据库里写),当关闭窗体时,写一次数据库,这样也行啊,不过突然掉电,那就不行了,不过可以再重启后,通过一个跟随系统启动就会自己启动的服务帮你最后写这次的日志,当然也可以在第二次启动这个桌面程序时,把这个记录的时间写进数据库里
hds119 2008-12-03
  • 打赏
  • 举报
回复
隔一段时间就像服务器发一个消息,比如给当前时间到表里,下次登录看这时间多长时间没更新了
我是这么做的
个人感觉很雷,有更号的告诉我!
xupeihuagudulei 2008-12-03
  • 打赏
  • 举报
回复
up
xupeihuagudulei 2008-12-03
  • 打赏
  • 举报
回复
up
soaringbird 2008-12-03
  • 打赏
  • 举报
回复
或者不光在登录时记时间,在程序运行中也定时地记录时间,相当于它不停地说:“我还活着”
ZM27080401 2008-12-03
  • 打赏
  • 举报
回复
LZ是做网站吗?如果是网站的话,在Global.asax中写,把session的状态改成 进程中的,然后只要浏览器关闭,会话结束,都可以把这个时间写
进数据库。如果是本地运行桌面程序的话,那就不太好弄了,关注!
拉达曼迪斯II 2008-12-03
  • 打赏
  • 举报
回复
Application.Exit的时候纪录。
sikezx 2008-12-03
  • 打赏
  • 举报
回复
1.可以写在Global.asax文件的
Application_End(Object sender, EventArgs e)
这个方法中
2.先建立一静态全局DataCache, 当用户登录时添加用户初始登录时间和用户到DataCache中, 然后在页面代码中嵌入更新程序(当然要保证这个程序在每个页面中存在), 用于更新用户时间(每20秒或指定时间更新一次).在后台有另一程序检查用户最后一次更新时间和当前时间是否大于20秒, 如果大于,则清该用户, 然后记录在线时间.
3.非正常退出的一般如而是重启电脑或是断电源
你还可以统计在线时间吗?
用Session会话吧, 它的原理:
在客户请求后开始计时, 20分钟(你可以修改)以内,如果没有继续第二次请求, 对该用户就自动结束了
如果有请求,则在下次请求重新计时20分钟
所以,会有些误差
如果你需要统计准确的在线时间的话
可以在页面设置, 每几秒刷新一次
并且将Session超时设置为1分钟
这样, 在Session创立时计时, 结束时再统计总在线时间 就可以了
如果不想页面刷新, 还可以通过AjaX实现
以上就是我知道的方法,你可以试试,或者如果有更好的方法,记得告诉我哦!谢谢了,嘿嘿
dahai99007 2008-12-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 soaringbird 的回复:]
正常退出的时候记一下。至于非正常退出,就别管那么多了,做一下区分也可以。Windows直接断电的时候都记不了日志
[/Quote]
有道理
猿敲月下码 2008-12-03
  • 打赏
  • 举报
回复
可以用另外一个软件来监视它,当进程没有时就表示退出了
soaringbird 2008-12-03
  • 打赏
  • 举报
回复
正常退出的时候记一下。至于非正常退出,就别管那么多了,做一下区分也可以。Windows直接断电的时候都记不了日志

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧