Web应用程序以了解数据库更新

我的Web应用程序(ASP.NET 4)连接到数据库(SQL Server 2005)。 对于插入某个表中的每个新行,我希望Web应用程序可以执行某些过程(例如使用新数据向我发送电子邮件)。

我该如何实施该系统? 我的第一个是使用web应用检查表SN列,并有一个变量lastProcessedSN 。 并且每分钟都要继续投票。 当插入新行时,是否可以让DB通知Web应用程序?

请指教,谢谢。

编辑:发送电子邮件只是一个例子,而不是我想要做的事情。 所以这个问题集中在如何在MSSQL表插入上实现触发器来调用我的程序。

您可以修改插入脚本或存储过程以向自己发送电子邮件。 如果您使用SQL编写存储过程,则可以从那里发送电子邮件:从SQL发送电子邮件

否则,如果您正在使用EF / NHibernate / Linq2SQL,您可以编写C#代码给自己发送电子邮件

可能最简单的方法是设置一个每隔X分钟运行一次的Windows计划任务,该任务将执行您创建的控制台应用程序。 您的应用程序将从表中选择最新的行(基于时间戳,或者可能是您可以设置的标志)并通过电子邮件发送它们。

您可以为该表编写一个触发器,以便当新记录到达表时,它可以调用点网组件。您可以让您的点网组件中的电子邮件发送代码

对于插入某个表中的每个新行,我希望Web应用程序可以执行某些过程(例如使用新数据向我发送电子邮件)。

对于这个实现,根据我的知识,你应该使用窗口应用程序。

当插入新行时,是否可以让DB通知Web应用程序?

Window应用程序将使用System.Windows.Forms.Timer 。 以下是示例代码。

 System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer(); myTimer.Tick += new EventHandler(TimerEventProcessor); myTimer.Interval = Mention the time interval in milliseconds; myTimer.Start(); 

定时器也可以跟随。

System.Threading.Timer

System.Timers.Timer

有关选择计时器的更多信息,请访问此链接
System.Windows.Forms.Timer与System.Threading.Timer与System.Timers.Timer

 private void TimerEventProcessor(Object myObject, EventArgs myEventArgs) { { using (System.Data.SqlClient.SqlConnection con = new SqlConnection("YourConnection string")) { con.Open(); using (SqlCommand cmd = new SqlCommand()) { string expression = "Parameter value"; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "Your Stored Procedure"; cmd.Parameters.Add("Your Parameter Name", SqlDbType.VarChar).Value = expression; cmd.Connection = con; using (IDataReader dr = cmd.ExecuteReader()) { if (dr.Read()) { //Your functionality } } } } }