获取当天、本周、本月相关的数据

2024-02-07 08:58

本文主要是介绍获取当天、本周、本月相关的数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在页面上用RadioButtonList控件,HTML代码如下:
<% @ Page Language="C#" AutoEventWireup="true" CodeFile="LoginLog.aspx.cs" Inherits="Admin_LoginLog"
    StylesheetTheme
="Default" Theme="Default" 
%>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html  xmlns ="http://www.w3.org/1999/xhtml" >
< head  runat ="server" >
    
< title > 登录日志 </ title >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
        
< fieldset >
            
< legend > 相关设置 </ legend >
            
< div  id ="tabsF" >
                
< ul >
                    
< li >< href ="Default.aspx"  title ="返回" >< span > 返回 </ span ></ a ></ li >
                
</ ul >
            
</ div >
        
</ fieldset >
        
< fieldset >
            
< legend > 登录日志 </ legend >
            
<!-- 注:此单选列表的值,不要轻易进行修改,
            由于,它和后台类库有直接的关联,进行修改
            可能会造成,不能正确地查询数据。
            
-->
            
< asp:RadioButtonList  ID ="rbtnLoginLog"  runat ="server"  RepeatDirection ="Horizontal"
                AutoPostBack
="True"  OnSelectedIndexChanged ="rbtnLoginLog_SelectedIndexChanged" >
                
< asp:ListItem  Value ="0"  Selected ="True" > 今天 </ asp:ListItem >
                
< asp:ListItem  Value ="1" > 本周 </ asp:ListItem >
                
< asp:ListItem  Value ="2" > 本月 </ asp:ListItem >
                
< asp:ListItem  Value ="3" > 本年 </ asp:ListItem >
                
< asp:ListItem  Value ="4" > 全部 </ asp:ListItem >
            
</ asp:RadioButtonList >
            
< asp:Button  ID ="btnOut"  runat ="server"  Text ="导出"  OnClick ="btnOut_Click"   />
            
< asp:Button  ID ="btnDel"  runat ="server"  Text ="删除"  OnClick ="btnDel_Click"   />
            
< asp:GridView  ID ="gvLoginLog"  runat ="server"  AutoGenerateColumns ="False"  SkinID ="Default_GridView" >
                
< Columns >
                    
< asp:BoundField  DataField ="LoginTime"  HeaderText ="登录时间"   />
                    
< asp:BoundField  DataField ="UserName"  HeaderText ="登录用户"   />
                    
< asp:BoundField  DataField ="LoginIP"  HeaderText ="登录地址"   />
                
</ Columns >
            
</ asp:GridView >
        
</ fieldset >
    
</ form >
</ body >
</ html >
 网页后面的页面代码如下:
using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;

public   partial   class  Admin_LoginLog : System.Web.UI.Page
{
    
public WebUtility.OutExcel myOut = new WebUtility.OutExcel();
    WebUtility.SysUser user 
= new WebUtility.SysUser();
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
        
if (!Page.IsPostBack)
        
{
            
//默认显示的日志是当天的
            this.gvLoginLog.DataSource = user.DataSetLoginLog(WebUtility.SysUser.LoginLogType.today);
            
this.gvLoginLog.DataBind();
        }

    }


    
protected void rbtnLoginLog_SelectedIndexChanged(object sender, EventArgs e)
    
{
        
//通过枚举,进行设置数据源
        
//注: 此数据源和枚举值和页面的selectedvalue值保持一致
        this.gvLoginLog.DataSource = user.DataSetLoginLog((WebUtility.SysUser.LoginLogType)Convert.ToInt32(this.rbtnLoginLog.SelectedValue));
        
this.gvLoginLog.DataBind();
    }

    
protected void btnDel_Click(object sender, EventArgs e)
    
{
        WebUtility.Define.MessageBox(
this.Page,"您确定删除 "+this.rbtnLoginLog.SelectedItem.Text+" 的登录日志吗?");
        
//根据选择进行删除操作
        user.DeleteLoginLog((WebUtility.SysUser.LoginLogType)Convert.ToInt32(this.rbtnLoginLog.SelectedValue));
        
//设置数据源,进行数据绑定
        this.gvLoginLog.DataSource = user.DataSetLoginLog((WebUtility.SysUser.LoginLogType)Convert.ToInt32(this.rbtnLoginLog.SelectedValue));
        
this.gvLoginLog.DataBind();


    }

    
protected void btnOut_Click(object sender, EventArgs e)
    
{
        
//导出日志到Excel
        System.Data.DataTable dt = user.DataSetLoginLog(WebUtility.SysUser.LoginLogType.all).Tables[0];
        
string DownloadPath = Server.MapPath("."+ "//" + string.Format("登录日志备份{0}.XLS",System.DateTime.Now.ToShortDateString());
        
//导出
        this.myOut.Export(dt, DownloadPath);
        
//以下代码将 pdf 文件写入客户端浏览器。
        Response.ClearContent();
        Response.ClearHeaders();
        
//作为附件下载
        Response.AddHeader("Content-Disposition""attachment; filename=" + Server.UrlEncode(DownloadPath));
        Response.ContentType 
= "application/ms-excel";
        Response.WriteFile(DownloadPath);
        Response.Flush();
        Response.Close();
        
//从磁盘删除导出的文件
        System.IO.File.Delete(DownloadPath);
    }

}

相关的后台类库代码如下:
/// <summary>
        
/// 登录日志类型
        
/// </summary>

         public   enum  LoginLogType
        
{today,week,month,year,all} ;
        
/// <summary>
        
/// 登陆日志
        
/// </summary>
        
/// <param name="log">登录日志类型</param>
        
/// <returns>数据集</returns>

         public  DataSet DataSetLoginLog(LoginLogType log)
        
{
            
string strSql = "";
            
switch ((int)log)
            
{
                
case 0:
                    strSql 
= "Select LoginTime,UserName,LoginIP From vw_Login_Users  where datename(day,logintime) = datename(day,getdate())";
                    
break;
                
case 1:
                    strSql
="Select LoginTime,UserName,LoginIP From vw_Login_Users  where datename(week,logintime) = datename(week,getdate())";
                    
break;
                
case 2:
                    strSql
="Select LoginTime,UserName,LoginIP From vw_Login_Users  where datename(month,logintime) = datename(month,getdate())";
                    
break;
                
case 3:
                    strSql
="Select LoginTime,UserName,LoginIP From vw_Login_Users  where datename(year,logintime) = datename(year,getdate())";
                    
break;
                
case 4:
                    strSql 
= "Select LoginTime,UserName,LoginIP From vw_Login_Users";
                    
break;
                
default:
                    strSql
="Select LoginTime,UserName,LoginIP From vw_Login_Users  where datename(day,logintime) = datename(day,getdate())";
                    
break;
            }

            
return base.ExecuteSQLDataSet(strSql, "loginlogtest");

        }

        
/// <summary>
        
/// 删除登录日志
        
/// </summary>
        
/// <param name="logType">登录日志类型</param>
        
/// <returns>删除影响的行数</returns>

         public   int  DeleteLoginLog(LoginLogType logType)
        
{
            
string strSql = "";
            
switch ((int)logType)
            
{
                
case 0:
                    strSql 
= "Delete From Login_Log  where datename(day,logintime) = datename(day,getdate())";
                    
break;
                
case 1:
                    strSql 
= "Delete From Login_Log  where datename(week,logintime) = datename(week,getdate())";
                    
break;
                
case 2:
                    strSql 
= "Delete From Login_Log  where datename(month,logintime) = datename(month,getdate())";
                    
break;
                
case 3:
                    strSql 
= "Delete From Login_Log  where datename(year,logintime) = datename(year,getdate())";
                    
break;
                
case 4:
                    strSql 
= "Delete From Login_Log";
                    
break;
                
default:
                    strSql 
= "Delete From Login_Log  where datename(day,logintime) = datename(day,getdate())";
                    
break;
            }

            
return base.ExecuteNonQuery(strSql, null);
        }

      以上实现方法,主要是利用枚举类型,将枚举类型的值和页面的RadioButtonList控件的Value值,设置同步,这样,当我们选择不同的类型时,通过后台的类库,获取不同的数据集。

这篇关于获取当天、本周、本月相关的数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/687198

相关文章

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

Python获取浏览器Cookies的四种方式小结

《Python获取浏览器Cookies的四种方式小结》在进行Web应用程序测试和开发时,获取浏览器Cookies是一项重要任务,本文我们介绍四种用Python获取浏览器Cookies的方式,具有一定的... 目录什么是 Cookie?1.使用Selenium库获取浏览器Cookies2.使用浏览器开发者工具

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口