public void InsertAllTable(PacketSimpInfo packetSimpInfo , PacketCompInfo packetCompInfo , PacketInfo packetInfo , RealTimeInfo realTimeInfo) { using (db = dbFactory.Open()) { db.Insert <PacketSimpInfo>(packetSimpInfo); db.Insert <PacketCompInfo>(packetCompInfo); db.Insert <PacketInfo>(packetInfo); db.Insert <RealTimeInfo>(realTimeInfo); } }
//插入 public bool InsertSimpPcap(PacketSimpInfo packetSimpInfo) { using (db = dbFactory.Open()) { try { var flag = db.Insert <PacketSimpInfo>(packetSimpInfo); if (flag >= 0) { return(true); } } catch (Exception) { } return(false); } }
private void refreshData(int capnum, int fraLen, DateTime dateTime, double seconds, string timeVal, string epochTime , string linkType, string sMac, string dMac, int linkHeadLen, string ethType, string sIp, string dIp, int TTL, int IpTotalLen , int ipHeadLen, int ipChecksum, int version, string ipType, int sPort, int dPort, long seqNum, long ackNum , int tranTotalLen, int tranHeadLen, int windowSize, int tranChecksum, int dataLen, string info, string flag, bool compMAC, bool compIP) { //1插入简单 PacketSimpInfo packetSimpInfo = new PacketSimpInfo(capnum, timeVal, sIp, dIp, ipType, fraLen, info); ThreadPool.QueueUserWorkItem(delegate { this.Dispatcher.Invoke(new Action(() => { packetSimpInfos.Add(packetSimpInfo); }), null); }); //2.插入复杂 PacketCompInfo packetCompInfo = new PacketCompInfo(capnum, capnum, fraLen, fraLen, epochTime, sMac, dMac, ethType, sIp, dIp, sPort, dPort, timeVal, ipHeadLen, TTL, ipType, flag); packetCompInfos.Add(packetCompInfo); //3。插入完整 PacketInfo packetInfo = new PacketInfo(capnum, fraLen, dateTime, seconds, timeVal, epochTime, linkType, sMac, dMac, ethType , sIp, dIp, TTL, IpTotalLen, ipHeadLen, ipChecksum, version, ipType, sPort, dPort, seqNum , ackNum, tranHeadLen, windowSize, tranChecksum, dataLen, info, flag); packetInfos.Add(packetInfo); //4.插入实时 (更改datetime) RealTimeInfo realTimeInfo = new RealTimeInfo(capnum, new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, dateTime.Hour, dateTime.Minute, dateTime.Second), seconds, ethType, fraLen, ipType); //5.插入实时本地 //System.Object lockthis = (System.Object)seconds; //lock (lockthis) //{ if (!IOChartStatisticsWindow.RealTimeInfos.ContainsKey((int)seconds)) { RealChartItem realChartItem = new RealChartItem((int)seconds, dateTime, 1, fraLen); IOChartStatisticsWindow.RealTimeInfos.Add((int)seconds, realChartItem); } else { IOChartStatisticsWindow.RealTimeInfos[(int)seconds].Count++; IOChartStatisticsWindow.RealTimeInfos[(int)seconds].SumLen += fraLen; } //} //统计1插入 StatisticsInfo statisticsInfo = null; if (compIP == true) {//换 if (compMAC == true) { statisticsInfo = new StatisticsInfo(fraLen, seconds, linkType, dMac, sMac, linkHeadLen, ethType, dIp, sIp, IpTotalLen, ipHeadLen, ipType, dPort, sPort, tranTotalLen, tranHeadLen, dataLen, compMAC, compIP); } else { statisticsInfo = new StatisticsInfo(fraLen, seconds, linkType, sMac, dMac, linkHeadLen, ethType, dIp, sIp, IpTotalLen, ipHeadLen, ipType, dPort, sPort, tranTotalLen, tranHeadLen, dataLen, compMAC, compIP); } } else { if (compMAC == true) { statisticsInfo = new StatisticsInfo(fraLen, seconds, linkType, dMac, sMac, linkHeadLen, ethType, sIp, dIp, IpTotalLen, ipHeadLen, ipType, sPort, dPort, tranTotalLen, tranHeadLen, dataLen, compMAC, compIP); } else { statisticsInfo = new StatisticsInfo(fraLen, seconds, linkType, sMac, dMac, linkHeadLen, ethType, sIp, dIp, IpTotalLen, ipHeadLen, ipType, sPort, dPort, tranTotalLen, tranHeadLen, dataLen, compMAC, compIP); } } //5 更新数据库 //serviceStackDBHelper.InsertAllTable(packetSimpInfo, packetCompInfo, packetInfo, realTimeInfo); new Thread(() => { serviceStackDBHelper.InsertSimpPcap(packetSimpInfo); serviceStackDBHelper.InsertCompPcap(packetCompInfo); serviceStackDBHelper.InsertPcap(packetInfo); serviceStackDBHelper.InsertRT(realTimeInfo); serviceStackDBHelper.InsertStatistics(statisticsInfo); }).Start(); }