如何添加文本与值不同的计算列
本文关键字:计算 文本 何添加 添加 | 更新日期: 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