投票的“投票项”功能地址出错
问题描述:在后台添加投票的时候,通过“选择投票项”功能是可以把前台的投票项和网站中的文章、图片等信息关联起来,让用户在投票的时候能更清楚选项的内容,但是当添加了投票项后,前台投票项所得到的地址却不是正确的页面地址,如下图:
问题分析:途中表示投票项的地址出现错误,初步判断是因为其中几个字段没有正确查询出来而引起错误,根据错误信息找到了标签“信息投票列表”,通过对标签代码检查后没发现有问题,直接把标签的SQL语句在SQL server中运行也能正确得到相关的字段。在经过参数值传递检查,确定参数传递没问题之后,再来确定字段值输出测试,然而当进行测试的时候终于发现了问题所在,看下图:
图中三列是三个投票项,其中每个投票项进行了字段输出测试,每个字段之间用|作分隔符分隔开以便观察,第一个字段是NodeID,第二个字段是GeneralID,第三个字段是InputTime,第四个字段是PinyinTitle,第五个字段是Title。在图中我们能看奥第二个GeneralID是空的,并没有输出,因此投票项的地址不能正确分析出来。重新到标签代码中检查,对照着数据库结构图,发现原来该标签所查询的两个表都各有一个GeneralID字段,只不过一个是GeneralId,另一个是GeneralID,而在SQL server运行语句的时候,是不需要区分大小写的,在标签XSL环境下则需要区分大小写,因此就出现SQL server运行语句没问题,真正输出有问题的情况。
解决办法:修改标签“信息投票列表”的SQL语句,用下面的代替原来的
SELECT C.NodeID,C.InputTime, C.PinyinTitle,C.GeneralID,VI.* FROM PE_VT_VoteItem VI LEFT OUTER JOIN PE_CommonModel C on VI.GeneralId=C.GeneralID WHERE VI.VoteID = @VoteId