这里有一个有点混乱的场景。我有两个tables.One表存储已注册(TblAllUsers)的新用户,另一个存储新创建的事件(TblAllEvents).Now,我希望通过注册日期时间以网格视图顺序显示两个表的组合,以便:
如果最新的值来自tblAllUsers,它应该显示"Michael刚刚在网站上注册“,其中Michael是tblalluser中用户的名字。
如果价值来自tblAllEvents,它应该显示“钢琴展览是由User34创造的”,其中钢琴展览是EventName in tblAllEvents
到目前为止,我已经尝试创建两个表的联合,如下所示:
Select FirstName,RegDateTime from tblAllUsers
UNION ALL
Select EventName,RegDateTime from tblAllEvents
ORDER BY RegDateTime DESC但是上面给出了FirstName和FirstName列下的标题,很难区分。
如何设计网格视图模板?
提前谢谢。
发布于 2015-10-21 07:00:15
您可以这样更改查询:
SELECT FirstName, NULL AS EventName, RegDateTime
FROM tblAllUsers
UNION ALL
SELECT NULL, EventName, RegDateTime
FROM tblAllEvents
ORDER BY RegDateTime DESC现在您有三个列,FirstName或EventName将根据它来自哪个表而被填充。
在您的GridView中,您可以测试哪个值是空的(EventName还是FirstName),并相应地更改文本。
编辑:您甚至可以只返回第一行(带有最新的RegDateTime):
SELECT TOP 1 *
FROM (SELECT FirstName, NULL AS EventName, RegDateTime
FROM tblAllUsers
UNION ALL
SELECT NULL, EventName, RegDateTime
FROM tblAllEvents) AS a
ORDER BY RegDateTime DESC发布于 2015-10-21 07:16:56
您可以选择添加一个event type列,并使用它检查如何在网格视图中处理它。
Select 'User' as EventType, FirstName,RegDateTime from tblAllUsers
UNION ALL
Select 'Event' as EventType, EventName,RegDateTime from tblAllEvents
ORDER BY RegDateTime DESC您可能还需要在'Event'中添加用户名,因为您还显示了创建事件的用户的名称。
https://stackoverflow.com/questions/33252376
复制相似问题