首页 > 数据库 >Sql Server数据库监听 c#代码

Sql Server数据库监听 c#代码

时间:2024-10-18 14:12:43浏览次数:9  
标签:c# TraceField System new profiler Sql using Server row

using AnfiniL.SqlServerTools.Data;
using SqlServerTools;
using SqlServerTools.Data;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Text;

namespace windowsApiAcitonSimulation.Help
{
public class DBProfiler
{
public static void StartSqlServerProfiler()
{
IProfiler profiler = ToolsFactory.Instance.CreateProfiler("192.168.0.83,9920", "sa", "zdsoft123", null);
profiler.Initialize(TraceOptions.FileRollover, DateTime.Now.ToString(".yyyy.MM.dd.HH.mm.ss"));
var TraceFieldArr = new TraceField[] {
TraceField.TextData,
TraceField.StartTime,
TraceField.Writes,
TraceField.Reads,
TraceField.ApplicationName
};
TraceEventProperties eventPropSql = new TraceEventProperties()
{
Event = TraceEvent.SQLBatchCompleted,
Fields = TraceFieldArr
};
TraceEventProperties eventPropSP = new TraceEventProperties()
{
Event = TraceEvent.RPCCompleted,
Fields = TraceFieldArr
};
profiler.AddTraceEvent(eventPropSql.Event, eventPropSql.Fields);
profiler.AddTraceEvent(eventPropSP.Event, eventPropSP.Fields);
var filter = new FilterProperties(
TraceField.ApplicationName,
(ComparisonOperator)Enum.Parse(typeof(ComparisonOperator), "Equal"),
"cszhidacysoft");
if (filter.CheckFilter())
{
profiler.AddTraceFilter(filter.Field, LogicalOperator.AND, filter.Operator, filter.TypedValue);
}
profiler.TraceEvent += profiler_TraceEvent;
profiler.Start();
}
private static void profiler_TraceEvent(object sender, TraceEventArgs e)
{
if (e.EventsTable.Rows.Count > 0)
{
foreach (DataRow row in e.EventsTable.Rows)
{
if (row["TextData"].ToString().IndexOf("insert into ba_consume(vcvipno,vcNo,vcCust_c,vcCust_n,iPeople,vcTable_c,vcTable_n,vcTimes,vcServer,dtTime,vcMemo,vcOper,dtOper,vcSaler,cType,bPrint,vcID)") > -1
||
row["TextData"].ToString().IndexOf("delete from ba_consume where") > -1
)
{
//此时通知用户开台列表有变动
string url = "http://localhost:62123/api/server/GetKTChange";
WebClient client = new WebClient();
//上传并接收数据
string result = client.DownloadString(url);
break;
}
//insert into ba_consume_d(zsr,jb,costprice,jstcmny,jsmc,isdz,szsj,jsbm,tcbm,tcsl,tcdj,tcpkid,ddlx,vcNo,vcCode,vcName,fNumber,fNumber_s,vcUnit,mPrice,mMoney,iAgio,vcMemo,vcChoose,vcClass,vcPrint,dtChoose,vcEnter,bPrint,addmoney)
if (row["TextData"].ToString().IndexOf("insert into ba_consume_d(zsr,jb,costprice,jstcmny,jsmc,isdz,szsj,jsbm,tcbm,tcsl,tcdj,tcpkid,ddlx,vcNo,vcCode,vcName,fNumber,fNumber_s,vcUnit,mPrice,mMoney,iAgio,vcMemo,vcChoose,vcClass,vcPrint,dtChoose,vcEnter,bPrint,addmoney)") > -1
||
row["TextData"].ToString().IndexOf("delete from ba_consume_d") > -1
)
{
//点菜操作
//此时通知用户点菜列表有变动
string url = "http://localhost:62123/api/server/GetDCChange";
WebClient client = new WebClient();
//上传并接收数据
string result = client.DownloadString(url);
break;
}
}
}
}
}
}

 

https://files.cnblogs.com/files/gaocong/SqlServerTools.rar

标签:c#,TraceField,System,new,profiler,Sql,using,Server,row
From: https://www.cnblogs.com/lhxsoft/p/18474163

相关文章

  • Camera
    基础概念Unity场景在三维空间中表示游戏对象。由于观察者的屏幕是二维屏幕,Unity需要捕捉视图并将其“平面化”以进行显示。它使用摄像机来实现这一点。在Unity中,您可以通过将一个Camera组件添加到游戏对象来创建摄像机。常用属性CullingMask通过选择层来渲染指定层的......
  • Archi - 无单点原则 和 可水平扩展原则 的区别
    在系统设计中,无单点原则和可水平扩展原则是确保系统高可用性和灵活性的两个重要方面,它们之间存在明显的区别,具体如下:一、无单点原则定义:无单点原则是指在设计系统时,应避免存在单个点(组件、服务或设备)的故障导致整个系统不可用的情况。换句话说,系统应该具备冗余和容错能力,以确......
  • easyadmin NodeService
    EasyadminNodeService文件更新的commit由于作者更新了composer的加载方式,可能一些框架只更新composer没有更新controller文件的话,节点功能会出现bug错误。更新了节点文件的引用https://github.com/zhongshaofa/easyadmin/commit/424a0e6cbeb25afa03502641aaff92627c6......
  • 安乃达:用CRM构建从销售到管理到售后的全链路数字化运营平台
    安乃达驱动技术(上海)股份有限公司((简称:“安乃达”,股票代码为:“603350”))自2011年以来,公司通过多年的研发与积累现有直驱轮毂电机、减速轮毂电机和中置电机三大系列产品,并具备与电机相匹配的控制器、传感器、仪表等电驱动成套系统的配套供应能力。安乃达矢志不渝地致力于为您提......
  • chrony常用命令解析
    chronycsources-v该命令显示chronyd当前访问的时间源信息。可以指定可选参数-v,意为verbose。在这种情况下,会显示额外的标题行,以提醒各列的含义。M表示信号源的模式。^表示服务器,=表示对等机,#表示本地连接的参考时钟S*表示当前选择用于同步的最佳信号源。+表示选择......
  • SQL根据IP地址范围过滤数据
    MySQL函数:INET_ATON(expr)将IPv4网络地址转换成一个整数,该整数以网络字节顺序(bigendian)表示地址的数值。如果INET_ATON()不理解其参数,则返回NULL。mysql>SELECTINET_ATON('1.1.1.1');+----------------------+|INET_ATON('1.1.1.1')|+----------------------+|......
  • modsecurity: 配置文件中的配置项之一
    一,是否启用防火墙SecRuleEngine是接受来自ModSecurity-CRS目录下的所有规则的安全规则引擎。因此,我们可以根据需求设置不同的规则。#SecRuleEngineOn:将在服务器上激活ModSecurity防火墙。它会检测并阻止该服务器上的任何恶意攻击。#SecRuleEngineDetectionOnly:如果这个规则......
  • STM32 ADC实例解析(1)-寄存器方式
    文章目录一、寄存器列表二、示例代码三、总结优点:缺点:在很长的一段时间里我在项目中都是使用寄存器方式一、寄存器列表__IOuint32_tSR;/!<ADC状态寄存器,地址偏移量:0x00/__IOuint32_tCR1;/!<ADC控制寄存器1,地址偏移量:0x04/__IOuint32_tCR2;/!<ADC控制寄存......
  • STM32 ADC实例解析(1)-HAL+DMA方式
    文章目录一、STM32ADC与DMA的结合使用初始化ADC:配置DMA:启动DMA传输:中断处理(可选):二、示例代码初始化GPIO设置中断设置三、应用优势高效性:减轻CPU负担:灵活性:易用性:随着开发项目的累计,将ADC与DMA结合使用,可以实现高效的数据采集和处理。一、STM32ADC与DMA的结合......
  • cargo deny 插件
    cargodeny2024-10-18插件Rust它专门用于帮助Rust开发者检查项目依赖项的安全性、许可证合规性、多版本依赖管理等.执行cargodenycheck启用检查.deny.toml文件基本配置:#关于advisories部分的更多文档可以在这里找到:#https://embarkstudios.github.io/cargo-d......