我有一个Windows申请表。该表称为messages
,每当用户插入更新或删除消息时,日期/时间戳都存储在UserAction
列中。
应检索此列信息并将其作为链接显示在UI中。单击该链接有一个操作,该链接应被视为已读。
有人可以帮助我提出一些想法来实现这一行动吗?
提前致谢。
答案 0 :(得分:0)
我不确定如何从数据库触发事件并在UI中显示详细信息,但我认为以下是可行的:
INSERT/DELETE
个触发器,并在UserAction
表格中插入数据。UserAction
读取数据并显示在UI
中的用户界面。UI
以特定间隔刷新数据库UserAction
中的数据。这样,您将按特定时间间隔轮询任何更改UserAction
,并使用刷新的数据刷新页面。
答案 1 :(得分:0)
您可以使用Query Notifications,但可以监控的内容有一些限制。
SQL Server 2005引入了查询通知,这是一项新功能,允许应用程序在查询结果发生变化时从SQL Server请求通知。查询通知允许程序员设计仅在应用程序先前检索到的信息发生更改时才查询数据库的应用程序。
此功能通过SqlDependency
类公开。您应该查看备注部分,作为评估查询通知是否适合您的一部分:
SqlDependency
旨在用于ASP.NET或中间层服务,其中存在相对较少数量的服务器,这些服务器具有对数据库的活动依赖性。它不是设计用于客户端应用程序,其中数百或数千台客户端计算机将为单个数据库服务器设置SqlDependency
个对象。如果您正在开发一个在数据更改时需要可靠的亚秒级通知的应用程序,请查看规划高效查询通知策略和查询通知的替代方法部分>在SQL Server联机丛书中规划通知主题。
答案 2 :(得分:0)
您可以尝试这样的事情:
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中做什么......