如何在MS SQL表中的新行之后执行C#代码

如何在MS SQL表中的新行之后执行C#代码,c#,sql,sql-server,C#,Sql,Sql Server,我想标题是这么说的 我尝试在MS SQL表获得新行后执行C代码。 谁能解释一下怎么做吗 我用C#类'SqlDependency'尝试了它,但我认为,这不是正确的解决方案,因为C#代码必须始终重新启动 我应该用T-SQL和SQL代理之类的东西来试试吗?也许我完全错了,我不知道,我真的需要你的帮助 我是新来的,所以请对我有点耐心:) 奥地利的问候 Gazza如果你想要一个简单的解决方案,你可以试试这个: 使用System.Data.SqlClient连接到您的数据库: 然后,您可以使用计时器在特定时

我想标题是这么说的

我尝试在MS SQL表获得新行后执行C代码。 谁能解释一下怎么做吗

我用C#类'SqlDependency'尝试了它,但我认为,这不是正确的解决方案,因为C#代码必须始终重新启动

我应该用T-SQL和SQL代理之类的东西来试试吗?也许我完全错了,我不知道,我真的需要你的帮助

我是新来的,所以请对我有点耐心:)

奥地利的问候
Gazza

如果你想要一个简单的解决方案,你可以试试这个:

使用
System.Data.SqlClient
连接到您的
数据库

然后,您可以使用计时器在特定时间间隔内运行“RowCountCheck”:

Timer timer = new Timer();      //using using System.Timers;
timer.Interval = 5000;          //Time for 1 interval in milliseconds
timer.AutoReset = true;         //Start again when elapsed
timer.Elapsed += Timer_Elapsed; //Method called when timer elapsed

private int _lastRowCount;

private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
   //Check row Count
   //Use your SqlClient here to get the rowCount
   

   if(_lastRowCount < currentRowCount)
   {
      //Row was added: Do your work here:
   }


  //Set the currentRowCount as _lastRowCount for the next check
   _lastRowCount = "yourValue";
}
Timer=new Timer()//使用系统定时器;
定时器间隔=5000//1个间隔的时间(毫秒)
timer.AutoReset=true//运行后重新启动
timer.appeated+=timer\u appeated//计时器运行时调用的方法
private int_lastRowCount;
私有无效计时器\u已过(对象发送器,ElapsedEventArgs e)
{
//检查行数
//在此处使用SqlClient获取行数
如果(_lastRowCount
链接:

-如何从SQL表中获取行数

-SqlClient


你试过什么?如果将C#代码放在Sql数据客户端之后,它将执行,您能说得更清楚吗?我试图用C#类“SqlDependency”监视我的MS Sql表。我的想法是,SqlDependency类响应我表上的更改,然后运行提供的代码是否要在SQL server端执行此操作?还是从应用程序中?在服务器端,您可以编译一个c#CLR并从触发器运行它。(我不喜欢触发器)我觉得这很合乎逻辑。但是,请原谅我愚蠢的问题,我能用C#来解释这一切吗?@Gazza让我们看看这是否对你有帮助:我认为这会起作用,但它的耦合不是很松散,可能会有问题。这项“服务”要停止的是什么?还是出错了?从插入的行中增加活动不是更好吗?好的-太好了,非常感谢。我理解这一点,这对我来说没有问题。现在,我还有一个问题:如何从已更改的行中找出列值?我希望你能理解我的问题!