C#winform自动记录自定义操作日志并保存到oracle数据库中,急!!!

qq_31541943 2017-05-14 09:52:45
用的本地局域网,记录的字段包括用户登录名、用户电脑ip、操作内容、用户操作时间、操作状态(是否异常)这五个字段,开发环境是vs2010的 .net4.0平台,oracle11g,如果能用log4net就更好了,求大神帮忙,最好有详细的配置和代码。
...全文
452 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
huiers 2019-09-05
  • 打赏
  • 举报
回复
1.用户进入任何一个窗体时都给他绑定鼠标单击事件和(键盘事件)可选 /// <summary> /// 绑定鼠标单击事件 /// </summary> /// <param name="items"></param> public static void updateMouseClickEvent(Form col) { List<Control> list = new List<Control>(); list = GetAllControls(col); if (list.Count == 0) return; foreach (Control con in list) ((Control)con).MouseClick += new MouseEventHandler(MainWindow_MouseClick); } /// <summary> /// 获取控件中的所有子空间 /// </summary> /// <param name="control"></param> /// <returns></returns> public static List<Control> GetAllControls(Control control) { var list = new List<Control>(); foreach (Control con in control.Controls) { list.Add(con); if (con.Controls.Count > 0) { list.AddRange(GetAllControls(con)); } } return list; } /// <summary> /// 窗体点击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void MainWindow_MouseClick(object sender, MouseEventArgs e) { Control fm = (Control)sender; if (fm is DataGridView) ***; if (fm is MenuStrip) ***; GoodsInfoAPI.constant.LastTime = DateTime.Now; try { Control fm = (Control)sender; if (fm is DataGridView) return; if (fm is MenuStrip) return; App.logWrite(fm.Name.ToString() + ":Text->:" + fm.Text + "--->Click"); } catch (Exception ee) { App.logWrite(sender.ToString() + "--->Click"); App.logWrite("Comvert To form Error:" + ee.Message); } } 有没有一点启发? 在窗体Load里面添加 updateMouseClickEvent(this);
huiers 2019-09-05
  • 打赏
  • 举报
回复
我可以回复吗?
qq_31541943 2017-05-15
  • 打赏
  • 举报
回复
@极简 我想输出局域网内所有登陆者的用户名、ip、操作内容、操作时间、操作状态该怎么改代码?操作内容应该是每点击一个功能按钮都会记录一条日志所以需要在那些按钮中都添加相应的输出代码吧,怎么添呢?还有刚才我试了一下你的代码,不知道在winform中怎么保存到数据库!请原谅我这个新手菜鸟

111,098

社区成员

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

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

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