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;
using UUN;
using System.Data.SqlClient;

public partial class Admin_TongJi_FangWenJiLu : System.Web.UI.Page
{
    private 访问 访问;
    private String SQL = "SELECT [ID],[用户ID],[用户昵称],[用户IP],[所在地区],[浏览器],[访问地址],[来源网站],[来源地址],[内容类型],[内容子类型],[访问时间] FROM [" + 程序.数据表前缀 + "其它_访问统计_访问记录]";
    private String 数量SQL = "SELECT COUNT(ID) FROM [" + 程序.数据表前缀 + "其它_访问统计_访问记录]";
    private SqlParameter 参数;
    private String 排序 = " [ID] DESC";
    protected void Page_Load(object sender, EventArgs e)
    {
        访问 = new 访问(this.Context);
        访问.开始处理("查看访问记录", "网站后台", "查看访问记录", new 访问.回调委托(ZhiXing));
        访问.关闭连接();
    }
    private void ZhiXing()
    {
        访问.验证管理员();
        生成查询条件();
        生成排序();
        if (!this.IsPostBack)
            生成数据();
    }
    private String 文字;
    private int 依据;
    private void 生成排序()
    {
        String 字段=Request.QueryString["zd"];
        if(字段==null||字段=="")
            return;
        bool 方向=Convert.ToBoolean(Request.QueryString["fx"]);
        排序 = " [" + 字段 + "]" + (方向 ? " DESC" : "");
        if (!this.IsPostBack)
        {
            PaiXuZiDuan.Value = 字段;
            PaiXuFangXiang.Value = 方向.ToString();
        }
    }
    private void 生成查询条件()
    {
        文字 = Request.QueryString["w"];
        依据 = Convert.ToInt32(Request.QueryString["yj"]);

        if (文字 == null || 文字 == "")
        {
            Label1.Text = "";
            return;
        }

        Label1.Text = "";

        SQL += " WHERE ";
        数量SQL += " WHERE ";
        switch (依据)
        {
            case 0:
                SQL += "[用户ID]=@用户ID";
                数量SQL += "[用户ID]=@用户ID";
                参数 = new SqlParameter("@用户ID", SqlDbType.Int);
                参数.Value = Convert.ToInt32(文字);
                Label1.Text += "用户ID";
                break;
            case 1:
                SQL += "[用户昵称]=@用户昵称";
                数量SQL += "[用户昵称]=@用户昵称";
                参数 = new SqlParameter("@用户昵称", SqlDbType.NVarChar);
                参数.Value = 文字;
                Label1.Text += "用户昵称";
                break;
            case 2:
                SQL += "[用户IP]=@用户IP";
                数量SQL += "[用户IP]=@用户IP";
                参数 = new SqlParameter("@用户IP", SqlDbType.NVarChar);
                参数.Value = 文字;
                Label1.Text += "用户IP";
                break;
            case 3:
                SQL += "[所在地区]=@所在地区";
                数量SQL += "[所在地区]=@所在地区";
                参数 = new SqlParameter("@所在地区", SqlDbType.NVarChar);
                参数.Value = 文字;
                Label1.Text += "所在地区";
                break;
            case 4:
                SQL += "[浏览器]=@浏览器";
                数量SQL += "[浏览器]=@浏览器";
                参数 = new SqlParameter("@浏览器", SqlDbType.NVarChar);
                参数.Value = 文字;
                Label1.Text += "浏览器";
                break;
            case 5:
                SQL += "[来源网站]=@来源网站";
                数量SQL += "[来源网站]=@来源网站";
                参数 = new SqlParameter("@来源网站", SqlDbType.NVarChar);
                参数.Value = 文字;
                Label1.Text += "来源网站";
                break;
            default:
                SQL += "[内容类型]=@内容类型";
                数量SQL += "[内容类型]=@内容类型";
                参数 = new SqlParameter("@内容类型", SqlDbType.NVarChar);
                参数.Value = 文字;
                Label1.Text += "内容类型";
                break;
        }
        Label1.Text += ":" + Server.HtmlEncode(文字)+"<br/>";
    }
    private void 生成数据()
    {
        SqlCommand 语句 = new SqlCommand(数量SQL, 访问.连接);
        if (参数 != null)
            语句.Parameters.Add(参数);

        后台分页 分页 = new 后台分页(Convert.ToInt32(语句.ExecuteScalar()),
            Convert.ToInt32(Request.QueryString["page"]),
            10,
            "FangWenJiLu.aspx?w=" + Server.UrlEncode(文字) + "&yj=" + 依据 + "&zd=" + Server.UrlEncode(PaiXuZiDuan.Value) + "&fx=" + PaiXuFangXiang.Value);

        DataSet 数据 = new DataSet();
        语句 = new SqlCommand(SQL + " ORDER BY " + 排序, 访问.连接);
        if (参数 != null)
            语句.Parameters.Add(参数.ParameterName,参数.SqlDbType).Value=参数.Value;
        SqlDataAdapter 填充 = new SqlDataAdapter(语句);
        填充.Fill(数据, (分页.当前页 - 1) * 10, 10, "访问统计_访问记录");

        GridView1.DataSource = 数据;
        GridView1.DataBind();

        FenYeDaiMa.Text = 分页.生成代码();
    }
    protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {
        排序 = "[" + e.SortExpression + "]";

        if (PaiXuZiDuan.Value == e.SortExpression && (!Convert.ToBoolean(PaiXuFangXiang.Value)))
        {
            排序 += " DESC";
            PaiXuFangXiang.Value = "true";
        }
        else
        {
            排序 += "";
            PaiXuFangXiang.Value = "false";
        }

        PaiXuZiDuan.Value = e.SortExpression;

        访问.连接.Open();

        访问.排错调用(new 访问.回调委托(生成数据));

        访问.关闭连接();
    }
}
