本文主要是介绍获取当天、本周、本月相关的数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在页面上用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 >< a 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值,设置同步,这样,当我们选择不同的类型时,通过后台的类库,获取不同的数据集。
这篇关于获取当天、本周、本月相关的数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!