public override Dictionary <uint, CLogMsg_WuQi> SynchronousDB() { if (null == this.str_conn) { return(null); } Dictionary <uint, CLogMsg_WuQi> dict = new Dictionary <uint, CLogMsg_WuQi>(); System.Data.SqlClient.SqlConnection conn = null; System.Data.SqlClient.SqlDataReader reader = null; try { // lock (this) { uint ui_guid = 0; conn = new System.Data.SqlClient.SqlConnection(this.str_conn); conn.Open(); System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("SELECT * FROM logmsginfo", conn); reader = cmd.ExecuteReader(); while (reader.Read()) { ui_guid = uint.Parse(reader["msgid"].ToString()); uint id = ui_guid; string smark = reader["msgmark"].ToString(); string stype = reader["msgtype"].ToString(); string smsg = reader["logmsg"].ToString(); string sowner = reader["msgowner"].ToString(); string logtime = reader["msgtime"].ToString(); CLogMsg_WuQi record = CLogMsgFactory.CreateMsg(id, smark, stype, smsg, sowner, DateTime.Parse(logtime)); dict.Add(id, record); } } } catch (System.Exception e) { throw e; } finally { if (null != reader) { reader.Close(); } if (null != conn) { conn.Close(); } } return(dict); }
public void TriggerLogMsg(string smsg, string stype, string sowner) { //原来的设计思路涉及到两次查询,大大降低了性能. //不得不重新考虑设计。浪费了大量的时间!所以前期系统分析一定要做细! // if ((CLog_WuQi.logstate_now & CLog_WuQi.logstate_all) == LOGSTATE.LogDebug) { Hashtable al = new Hashtable(); al.Add("msg", smsg); al.Add("owner", sowner); List <CLogMark_WuQi> marks = Search(2, al); CLogMark_WuQi mark = null; CLogMsg_WuQi msg = null; if (0 == marks.Count) { mark = CLogMark_WuQi.GetNewMark(smsg, sowner, 1, DateTime.Now); if (null != mark) { msg = CLogMsgFactory.CreateMsg(stype, smsg, sowner, mark.GetMyGuid().ToString()); logmsgcontainer.InsertMsg(msg); Insert(mark.GetMyGuid(), mark); } } else { foreach (CLogMark_WuQi markitem in marks) { if (0 != markitem.IsOpen) { msg = CLogMsgFactory.CreateMsg(stype, smsg, sowner, markitem.GetMyGuid().ToString()); logmsgcontainer.InsertMsg(msg); } } } } else if ((CLog_WuQi.logstate_now & CLog_WuQi.logstate_all) == LOGSTATE.LogRun) { CLogMsg_WuQi msg = CLogMsgFactory.CreateMsg(stype, smsg, sowner, "0"); logmsgcontainer.InsertMsg(msg); } }
protected override List <CLogMsg_WuQi> SearchDB(int adapter, Hashtable paraset) { if (null == this.str_conn) { return(null); } List <CLogMsg_WuQi> dict = new List <CLogMsg_WuQi>(); System.Data.SqlClient.SqlConnection conn = null; System.Data.SqlClient.SqlDataReader reader = null; try { // lock (this) { uint ui_guid = 0; conn = new System.Data.SqlClient.SqlConnection(this.str_conn); conn.Open(); System.Data.SqlClient.SqlCommand cmd = null; //根据不同查询条件搜索数据库 if (0 == adapter) { cmd = new System.Data.SqlClient.SqlCommand("SELECT * FROM logmsginfo", conn); } else if (1 == adapter) { cmd = new System.Data.SqlClient.SqlCommand("SELECT * FROM logmsginfo where msgowner =@owner", conn); cmd.Parameters.AddWithValue("@owner", (string)paraset["owner"]); } reader = cmd.ExecuteReader(); while (reader.Read()) { ui_guid = uint.Parse(reader["msgid"].ToString()); uint id = ui_guid; string smark = reader["msgmark"].ToString(); string stype = reader["msgtype"].ToString(); string smsg = reader["logmsg"].ToString(); string sowner = reader["msgowner"].ToString(); string logtime = reader["msgtime"].ToString(); CLogMsg_WuQi record = CLogMsgFactory.CreateMsg(id, smark, stype, smsg, sowner, DateTime.Parse(logtime)); dict.Add(record); } } } catch (System.Exception e) { throw e; } finally { if (null != reader) { reader.Close(); } if (null != conn) { conn.Close(); } } return(dict); }