C# Web应用程序了解数据库更新
我的web应用程序ASP.NET 4连接到数据库SQL Server 2005。对于插入到某个表中的每一新行,我希望web应用程序可以执行一些过程,例如向我发送一封包含新数据的电子邮件 如何实施该系统?我的第一个想法是让web应用检查table SN列,并使用变量lastProcessedSN。每分钟都要进行投票。插入新行时是否可以让DB通知web app 请告知,谢谢 编辑:C# Web应用程序了解数据库更新,c#,asp.net,sql-server-2005,C#,Asp.net,Sql Server 2005,我的web应用程序ASP.NET 4连接到数据库SQL Server 2005。对于插入到某个表中的每一新行,我希望web应用程序可以执行一些过程,例如向我发送一封包含新数据的电子邮件 如何实施该系统?我的第一个想法是让web应用检查table SN列,并使用变量lastProcessedSN。每分钟都要进行投票。插入新行时是否可以让DB通知web app 请告知,谢谢 编辑: 发送电子邮件只是一个例子,而不是我想做的事情。因此,这个问题的重点是如何在MSSQL表insert上实现触发器以调用
发送电子邮件只是一个例子,而不是我想做的事情。因此,这个问题的重点是如何在MSSQL表insert上实现触发器以调用我的程序。您可以修改insert脚本或存储过程以向自己发送电子邮件。如果您使用SQL中的存储过程进行编写,则可以从那里发送电子邮件:
否则,如果您使用EF/NHibernate/Linq2SQL,您可以编写C代码给自己发送电子邮件您可以为该表编写触发器,以便在新记录到达该表时,它可以调用.net程序集。您可以在您的.net程序集中设置电子邮件发送代码最简单的方法可能是设置一个Windows计划任务,该任务每X分钟运行一次,以执行您创建的控制台应用程序。您的应用程序将根据时间戳从表中选择最新的行,或者您可以设置一个标志并通过电子邮件发送它们 对于在中插入的每一新行 某些表格,我希望web应用程序可以 执行一些流程,例如向发送电子邮件 给我提供新的数据 对于这个实现,据我所知,您应该使用窗口应用程序 是否可以让DB通知web 当有新行正在运行时应用程序 插入 窗口应用程序将使用。下面是示例代码
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();
计时器也可以跟随
系统线程计时器
系统计时器
有关计时器选择的更多信息,请点击此链接
您可以使用SqlDependency的see &
这也是我书中最好的方法。找到了另一个解决方案-SqlNotificationRequest。
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
}
}
}
}
}