C# 在SQL Server中插入更新删除触发器

C# 在SQL Server中插入更新删除触发器,c#,sql-server-2008,triggers,C#,Sql Server 2008,Triggers,我有一张windows应用程序表单。该表称为messages,每当用户插入更新或删除消息时,日期/时间戳都存储在UserAction列中 应检索此列信息,并将其作为链接显示在UI中。单击该链接有一个操作,该链接应被视为已读 有人能帮我提出一些想法来实现这个行动吗 提前感谢。我不确定如何从数据库触发事件并在UI中显示详细信息,但我认为以下是可行的: 使用在UserAction表中插入数据的代码在表中添加INSERT/DELETE触发器。 构建一个从UserAction读取数据并显示在UI中的UI。

我有一张windows应用程序表单。该表称为messages,每当用户插入更新或删除消息时,日期/时间戳都存储在UserAction列中

应检索此列信息,并将其作为链接显示在UI中。单击该链接有一个操作,该链接应被视为已读

有人能帮我提出一些想法来实现这个行动吗


提前感谢。

我不确定如何从数据库触发事件并在UI中显示详细信息,但我认为以下是可行的:

使用在UserAction表中插入数据的代码在表中添加INSERT/DELETE触发器。 构建一个从UserAction读取数据并显示在UI中的UI。 您可能需要刷新UI,以在特定时间间隔刷新数据库UserAction中的数据。 通过这种方式,用户界面将在一定的时间间隔轮询UserAction的任何更改,并使用刷新的数据刷新页面。

您可以使用,尽管可以监视的内容有一些限制

SQLServer2005引入了查询通知,这是一项新功能,允许应用程序在查询结果更改时从SQLServer请求通知。查询通知允许程序员设计只在应用程序以前检索到的信息发生更改时才查询数据库的应用程序

此功能通过类公开。在评估查询通知是否适合您时,您应该查看备注部分:

SqlDependency设计用于ASP.NET或中间层服务,在这些服务中,相对较少的服务器对数据库具有活动的依赖关系。它不是为客户端应用程序设计的,在客户端应用程序中,数百或数千台客户端计算机将为单个数据库服务器设置SqlDependency对象。如果您正在开发一个在数据更改时需要可靠的亚秒级通知的应用程序,请查看SQL Server联机丛书中“计划通知”主题中的“计划高效查询通知策略和查询通知替代方案”部分


您可以尝试以下方法:

CREATE TRIGGER dbo.trMessagesUpdateTimeStamp
ON dbo.Messages
FOR INSERT, UPDATE, DELETE 
AS 

  UDPATE dbo.Messages
  SET UserAction = GETDATE()
  FROM Inserted i
  WHERE dbo.YourTableHere.ID = i.ID
要查看的要点:

通过UserAction列上的默认约束,可以更轻松地处理INSERT案例——这样,在插入定义的默认值(例如GETDATE)时,就会插入

您需要能够连接插入的伪表,该伪表包含上一条语句修改的所有行,这可以是Messages表的多行—我在这里假设您有某种ID列,用作消息的主键—根据需要调整它

这将处理故事中的数据库部分-从你的问题中我不太确定你想在UI中做什么