如何添加文本与值不同的计算列

本文关键字:计算 文本 何添加 添加 | 更新日期: 2023-09-27 18:15:49

我在表中有一个列,其中包含一个路径到我的数据库中的文件。我想在我的asp.net web应用程序中显示这一列,但我不想在GridView中显示路径,我希望每一行中的列只包含文本"视图附件",当它被点击时,我希望能够获得特定列的实际数据值。如果我没记错的话,我曾经用Union实现过这一点,但那是很久以前的事了,我真的不记得是怎么做到的了。

目前,这是我的Sql查询之前,我试图添加计算列。

SELECT id, 
       CONVERT(NVARCHAR(19), updatedate) AS updateDate, 
       statusupdate 
FROM   tblproject 
WHERE  ( [id] = @id ) 

表中包含路径的列名叫做path

如何添加文本与值不同的计算列

您总是可以选择'View Attachment'作为每行的常量值。我不知道为什么你想在sql而不是c#中这样做,但是…

SELECT path, 
       'View Attachment' AS Text 
FROM   tblproject 
WHERE  id = @id 

您可以在SQL语句中返回格式化的HTML链接,例如

SELECT id, 
       CONVERT(NVARCHAR(19), updatedate)            AS updateDate, 
       statusupdate, 
       '<a href="' + path + '">View Attachment</a>' AS path 
FROM   tblproject 
WHERE  ( [id] = @id ) 

作为一种选择,你可以使用GridView的initializerow事件在代码中格式化单元格。

永远不要试图在数据库层解决UI问题。

您返回一些HTML标记,您在ASP中很高兴。但是,当您需要通过web服务公开相同的数据,或者在WPF应用程序中显示相同的数据,或者导出到文本文件时,会发生什么?也许您可以为它们中的每一个创建一个新的查询。

需要我的建议吗?只有当您需要独立于UI技术处理数据(如计算平均值)时,才使用这样的查询。

在你的DataGrid里面使用一个TemplateColumn