⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stat.aspx.cs

📁 最好用的站点内容管理系统 全部源代码都有
💻 CS
📖 第 1 页 / 共 2 页
字号:
                    statid = Request.QueryString["statid"];//取得传递过来的统计ID号
                }
                NetCMS.Model.StatInfo info = new NetCMS.Model.StatInfo();

                info.vyear = _year;
                info.vmonth = _month;
                info.vday = _day;
                info.vhour = _hour;
                info.vtime = _time;
                info.vweek = _week;
                info.vip=_ip;
                info.vwhere = _country;
                info.vwheref = _city;
                info.vcome = _come;
                info.vpage = _page;
                info.vsoft = _soft;
                info.vOS = _Os;
                info.vwidth = _width;
                info.classid = statid;
                info.SiteID = NetCMS.Global.Current.SiteID;
                #region 执行数据操作语句,返回更新数据
                sta.Add(info);
                #endregion
            }
           
            #endregion

            #region 读写数据库,该数据库为整站的综合统计信息
            if (_isonline == "1")
            {
                string statidz = Request.QueryString["statid"];
                DataTable dtsa = sta.sel_stat_content(statidz);
                dv1 = dtsa.DefaultView;//先查询表中是否有数据存在,否则就对相应的ID号的综合统计信息进行数据增加
                dv1.Table.AcceptChanges();//提交对数据的更改
                if (dv1.Count == 0)
                {
                    dv1.Dispose();//释放资源
                    string vdatee = DateTime.Now.AddHours(0).Date.ToShortDateString();
                    string starttimee = DateTime.Now.AddHours(0).ToString();
                    string highttimee = DateTime.Now.AddHours(0).Date.ToShortDateString();

                    #region 向数据表中插入的初始数据
                    sta.add_statContent(vdatee, starttimee, highttimee, statidz, NetCMS.Global.Current.SiteID);//数据语句,返回数据表中
                    #endregion
                }
                else
                {
                    _today = int.Parse(dv1[0].Row["today"].ToString());
                    _yesterday = int.Parse(dv1[0].Row["yesterday"].ToString());
                    _content_data = dv1[0].Row["vdate"].ToString();
                    _all = int.Parse(dv1[0].Row["vtop"].ToString());
                    _heigh = int.Parse(dv1[0].Row["vhigh"].ToString());
                    _heightime = dv1[0].Row["vhightime"].ToString();
                    string strclassid = dv1[0].Row["classid"].ToString();
                    
                    dv1.Dispose();//释放资源

                    #region 更新综合表数据

                    int intdatecha = (int)(DateTime.Now.AddHours(0).Subtract(DateTime.Parse(_content_data)).TotalDays);
                    switch (intdatecha)
                    {
                        //上条记录是今天的
                        case 0:
                            _today += 1;//今天+1
                            break;

                        //上条记录是昨天的
                        case 1:
                            _yesterday = _today;//今天值->昨天
                            _today = 1;
                            _content_data = DateTime.Now.AddHours(0).Date.ToShortDateString();
                            break;

                        //上条记录是若干天前的
                        default:
                            _yesterday = 0;
                            _today = 1;
                            _content_data = DateTime.Now.AddHours(0).Date.ToShortDateString();
                            break;
                    }

                    if (_today > _heigh)
                    {
                        _heigh = _today;
                        _heightime = DateTime.Now.AddHours(0).Date.ToShortDateString();
                    }

                    _all += 1;

                    #endregion

                    #region 对指定的数据表进行更新

                    sta.Update(_today, _yesterday, _content_data, _all, _heigh, _heightime, strclassid, NetCMS.Global.Current.SiteID, strclassid); 
                    #endregion

                }

            }

            #region 读出数据(此数据为统计系统统计出来的数据的一个综合统计,如:今日统计,最高统计,本月的等等)
            string statidz1 = Request.QueryString["statid"];
            DataTable dte = sta.sel_stat_content(statidz1);
            dv1 = dte.DefaultView;

            int _today1 = int.Parse(dv1[0].Row["today"].ToString());
            int _yesterday1 = int.Parse(dv1[0].Row["yesterday"].ToString());
            int _all1 = int.Parse(dv1[0].Row["vtop"].ToString());
            int inthigh1 = int.Parse(dv1[0].Row["vhigh"].ToString());
            string strhightime1 = DateTime.Parse(dv1[0].Row["vhightime"].ToString()).Date.ToShortDateString();

            dv1.Dispose();//释放资源

            #endregion

            #region 读写COOKIE,得到用户浏览量

            System.Web.HttpCookie readcookie1 = Request.Cookies[_sysenglish_name];
            if (readcookie1 != null && readcookie1.Values["_old"] != null)
            {
                _user_visit = int.Parse(readcookie1.Values["_old"].ToString()) + 1;
            }
            else
            {
                _user_visit = 1;
            }

            System.Web.HttpCookie cookie1 = new HttpCookie(_sysenglish_name);
            cookie1.Expires = DateTime.Now.AddHours(0).AddDays(int.Parse(dv[0].Row["cookies"].ToString()));
            cookie1.Values.Add("_old", _user_visit.ToString());//添加指定项
            Response.AppendCookie(cookie1);

            #endregion

            #endregion

            /// <summary>
            /// 前台调用
            /// </summary>
            /// code by chenzhaohui

            #region 前台调用程序及图像文件路径-从stat.aspx中传递参数style,url等,调用该统计
           
            code = Request.QueryString["code"];

            string Str_dirMana = NetCMS.Config.UIConfig.dirDumm;//虚拟目录
            
            if (Str_dirMana != "" && Str_dirMana != null && Str_dirMana != string.Empty)//判断虚拟路径是否为空
            {
                Str_dirMana = @"/" + Str_dirMana;
            }
            else
            {
                Str_dirMana = "";
            }
            #region 取得当前域名地址
            _url = "http://" + ServerVariables["HTTP_HOST"].ToString() + _url + Str_dirMana;
            #endregion

            /// <summary>
            /// 根据传递的参数得出统计的样式(marquee,pic,text)
            /// </summary>
            /// <param name="code">前台样式</param>
            /// code by chenzhaohui

            #region 输出
            switch (code)
            {
                case "1":		//LOGO滚动样式的统计方式,滚动方式显示统计到的相关信息
                    _outstr = "<marquee loop='-1' behavior='alternate' scrollDelay='1' scrollAmount='3' style='font-size: 12px; line-height=15px' onMouseOut='this.start();' onMouseOver='this.stop();'>";
                    _outstr += "<font face='Arial, Verdana, san-serif' color='#407526'>总量: " + _all1 + "&nbsp;最高访问量: " + inthigh1 + "&nbsp;最高访问量日期: " + strhightime1 + "&nbsp;今日访问: " + _today1 + " &nbsp;昨日访问: " + _yesterday1 + " &nbsp;您的访问量: " + _user_visit;
                    if (int.Parse(dv[0].Row["isOnlinestat"].ToString()) == 1) _outstr += " &nbsp;在线人数: " + _online_person;
                    _outstr += "</font></marquee>";
                    break;

                case "2":		//ICON显示一小图标,鼠标放上去自动显示出系统统计到的相关信息
                    _outstr = "<a href='http://www.netcms' title='" + dv[0].Row["SystemName"].ToString() + "\\n总量: " + _all1 + "\\n最高访问量: " + inthigh1 + "\\n最高访问量日期: " + strhightime1 + "\\n今日访问: " + _today1 + "\\n昨日访问: " + _yesterday1 + "\\n您的访问量: " + _user_visit;
                    if (int.Parse(dv[0].Row["isOnlinestat"].ToString()) == 1) _outstr += "\\n在线人数: " + _online_person;
                    _outstr += "' target='_blank'><img border='0' src='" + _url + "/sysImages/folder/stat.gif'></a>";
                    break;

                case "0":		//TEXT文本方式显示总数,统计方式比较单一简单。
                    _outstr = _all1.ToString();
                    _outstr = "总量:" + _all1.ToString() + ",最高日期:" + strhightime1 + ",今日:" + _today1 + ",昨日:" + _yesterday1 + ",您的访问量:" + _user_visit + "";
                    break;
                default:        //默认
                    _outstr = "<a href='http://www.netcms' title='" + dv[0].Row["SystemName"].ToString() + "\\n总量: " + _all1 + "\\n最高访问量: " + inthigh1 + "\\n最高访问量日期: " + strhightime1 + "\\n今日访问: " + _today1 + "\\n昨日访问: " + _yesterday1 + "\\n您的访问量: " + _user_visit;
                    if (int.Parse(dv[0].Row["isOnlinestat"].ToString()) == 1) _outstr += "\\n在线人数: " + _online_person;
                    _outstr += "' target='_blank'><img border='0' src='" + _url + "/sysImages/folder/stat.gif'></a>";
                    break;
            }

            //输出,统计数据
            //Response.Expires = DateAdd("n", _IPtimeResh, now());
            Response.Write("document" + "." + "write(\"" + _outstr + "\")");
            #endregion
            #endregion
        }
        #endregion

        else	//检查是否非法调用
        {
            PageError("意外错误:未知错误", "shortcut_list.aspx");
        }
        #endregion

    }

    /// <summary>
    /// 取IP
    /// </summary>
    /// <param name="_ip"></param>
    /// <returns></returns>

    public long _GetIP(string _ip)
    {
        string[] _streachip = _ip.Split('.');
        long _intip = 0;
        for (int i = 0; i < 4; i++)
        {
            _intip += (long)(int.Parse(_streachip[i]) * System.Math.Pow(256, 3 - i));
        }
        return _intip;
    }

    /// <summary>
    /// 连接IP地址数据库并执行SQL语句
    /// </summary>
    /// <param name="sql">SQL语句</param>
    /// <returns>返回数据表</returns>

    protected DataTable stat_AcDb(string sql)
    {
        OleDbConnection conn = new OleDbConnection();
        string str_dirMana = NetCMS.Config.UIConfig.dirDumm;//获取用户虚拟路径
        if (str_dirMana != "" && str_dirMana != null && str_dirMana != string.Empty)
        {
            str_dirMana = @"/" + str_dirMana;
        }
        conn.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0;data source=" + Server.MapPath(str_dirMana + "/database/AddressIp.mdb") + "";
        try
        {
            conn.Open();
        }
        catch (OleDbException e)
        {
            PageError("打开IP地址数据库失败!失败原因:" + e.ToString(), "");
        }
        OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
        DataTable dt = null;
        DataSet ds = new DataSet();
        da.Fill(ds, "table");
        try
        {
            dt = ds.Tables["table"];
        }
        catch (Exception ee)
        {
            PageError("未知错误!错误原因:" + ee.ToString(), "");
        }
        finally
        {
            conn.Close();
            conn.Dispose();
        }
        return dt;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -