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

在页面上用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值,设置同步,这样,当我们选择不同的类型时,通过后台的类库,获取不同的数据集。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值