如何在MS SQL表中的新行之后执行C#代码
我想标题是这么说的 我尝试在MS SQL表获得新行后执行C代码。 谁能解释一下怎么做吗 我用C#类'SqlDependency'尝试了它,但我认为,这不是正确的解决方案,因为C#代码必须始终重新启动 我应该用T-SQL和SQL代理之类的东西来试试吗?也许我完全错了,我不知道,我真的需要你的帮助 我是新来的,所以请对我有点耐心:) 奥地利的问候如何在MS SQL表中的新行之后执行C#代码,c#,sql,sql-server,C#,Sql,Sql Server,我想标题是这么说的 我尝试在MS SQL表获得新行后执行C代码。 谁能解释一下怎么做吗 我用C#类'SqlDependency'尝试了它,但我认为,这不是正确的解决方案,因为C#代码必须始终重新启动 我应该用T-SQL和SQL代理之类的东西来试试吗?也许我完全错了,我不知道,我真的需要你的帮助 我是新来的,所以请对我有点耐心:) 奥地利的问候 Gazza如果你想要一个简单的解决方案,你可以试试这个: 使用System.Data.SqlClient连接到您的数据库: 然后,您可以使用计时器在特定时
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让我们看看这是否对你有帮助:我认为这会起作用,但它的耦合不是很松散,可能会有问题。这项“服务”要停止的是什么?还是出错了?从插入的行中增加活动不是更好吗?好的-太好了,非常感谢。我理解这一点,这对我来说没有问题。现在,我还有一个问题:如何从已更改的行中找出列值?我希望你能理解我的问题!