我有一个Windows应用程序窗体。该表被称为messages
,并且无论何时用户插入更新或删除消息,日期/时间戳都存储在列UserAction
中。在SQL Server中插入更新删除触发器
应该检索此列信息并将其作为链接显示在UI中。点击该链接有一个动作,链接应该被视为已读。
有人可以帮助我提供一些想法来实现这一行动吗?
在此先感谢。
我有一个Windows应用程序窗体。该表被称为messages
,并且无论何时用户插入更新或删除消息,日期/时间戳都存储在列UserAction
中。在SQL Server中插入更新删除触发器
应该检索此列信息并将其作为链接显示在UI中。点击该链接有一个动作,链接应该被视为已读。
有人可以帮助我提供一些想法来实现这一行动吗?
在此先感谢。
我不知道如何可以触发来自数据库的事件,并在UI中显示的细节,但我认为以下是可行的:
INSERT/DELETE
触发你的表的代码UserAction
插入数据表。UserAction
读取数据并显示在UI
中的UI。UI
以按一定的时间间隔刷新数据库UserAction
中的数据。这样,您的UI将以特定间隔轮询UserAction
的任何更改并使用刷新的数据刷新页面。
您可以使用Query Notifications,但可以监控的内容有一些限制。
SQL Server 2005引入了查询通知,该新功能允许应用程序在查询结果发生更改时向SQL Server请求通知。查询通知允许程序员设计仅在应用程序以前检索到的信息发生变化时才查询数据库的应用程序。
该功能通过SqlDependency
类公开。你应该检讨备注部分为评估是否查询通知的一部分,是你:
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
点退房:
的INSERT
情况下,可以很容易地更容易被DEFAULT
约束的UserAction
柱处理 - 这样,根据INSERT
将定义的默认值(例如GETDATE()
)插入
你需要能够加入保存由最后一条语句被修改的所有行的Inserted
伪表(这样就可以多行)与Messages
表 - 我在这里假设你有某种ID
列作为Messages
上的主键 - 根据需要进行调整。
这个处理故事的数据库的一部分 - 我不是从你的问题很确定要在UI做什么...