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

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分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十