sqlstatloger.cs

来自「《精通ASP.NET2.0网络应用系统开发》书中的源码」· CS 代码 · 共 78 行

CS
78
字号
using System;
using webvisitStatistic;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
using webvisitStatistic.Reporter.IPLook;
namespace webvisitStatistic.HitsHandler.DBLayer
{
	/// <summary>
	/// SqlStatLogger 的摘要说明。
	/// </summary>
	public class SqlStatLogger :	StatLoggerBaseImpl
	{

		public SqlStatLogger()
		{
			//
			// TODO: 在此处添加构造函数逻辑
			//
		}

		#region IStatLogger 成员

		public override bool Init(String conn)
		{
			// TODO:  添加 SqlStatLogger.Init 实现
			if(null!=connString) return true;
			else
			{
				connString = conn;			
				if(connString==null) 
				{
					throw new Exception("获取数据库连接字符串失败");
				}
				return true;
			}
		}

		public override void Log(StatInfo statInfo)
		{
			// TODO:  添加 SqlStatLogger.webvisitStatistic.DBLayer.IStatLogger.Log 实现
			using(SqlConnection conn = new SqlConnection(connString))
			{
				SqlCommand cmd = conn.CreateCommand();
				cmd.CommandType = CommandType.StoredProcedure;
				cmd.CommandText = sqlAddStatJournel;
				cmd.Parameters.Add("@webid",SqlDbType.BigInt).Value = statInfo.WebId;
				cmd.Parameters.Add("@ip",SqlDbType.Char,15).Value = IPFormat(statInfo.ClientIP);				
				cmd.Parameters.Add("@url",SqlDbType.Char,256).Value = statInfo.URL;
				cmd.Parameters.Add("@vtime",SqlDbType.DateTime,8).Value = statInfo.Time;
				cmd.Parameters.Add("@defLang",SqlDbType.Char,10).Value = statInfo.UserLanguage;
				cmd.Parameters.Add("@refurl",SqlDbType.Char,256).Value = statInfo.RefUrl;
				cmd.Parameters.Add("@client",SqlDbType.Int).Value = statInfo.Client.Code;
				// ippos
				IpLookTable iplooktable = IpLookTable.Instance();
				int index = iplooktable.SearchRangeOfStartIp(ParseIP(statInfo.ClientIP));
				if (-1!=index) {
					cmd.Parameters.Add("@ippos" ,SqlDbType.BigInt ).Value = iplooktable.Items[index].sip;
				}else{
					cmd.Parameters.Add("@ippos" ,SqlDbType.BigInt ).Value = -2;	// invalid value
				}

				conn.Open();
				cmd.ExecuteNonQuery();

			}
		}

		#endregion



		private String connString;
		private String sqlAddStatJournel = "AddStatJournel";
	}

}

⌨️ 快捷键说明

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