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

时间:2011-06-01 20:30:23

标签: c# asp.net sql-server-2005

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

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

请指教,谢谢。



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

5 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:2)

答案 3 :(得分:1)

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

答案 4 :(得分:0)

  

对于插入的每个新行   某些表,我想要的网络应用程序可以   做一些过程(比如发送电子邮件到   我有新数据)。

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

  

是否可以让数据库通知网络   应用程序,当有一个新行   插入

窗口应用程序将使用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 vs. System.Threading.Timer vs. 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
                }
            }
        }
    }

}