数据库表中的数据有一个字段数据量很大,读取显示在页面上,想让显示一定的字数,如20个字后+加省略号的方式
SELECT AbContent1 = CASE WHEN LEN(AbContent ) > 15 THEN LEFT(AbContent , 14) + '...'
ELSE AbContent
END,
AbContent
FROM Abstract
这段代码不起作用呢,谢谢
这句sql本身,应该是没有什么问题的。
问题在于你存储与数据库的是富文本(带有样式),那么你截取的20个,就不一定是显示的文字了。
提供思路:1、通过样式表在界面上隐藏多余的字符;
2、将数据读取到程序中,去掉html标记之后,再进行截取;
3、既然你有这样的截取需求,那么你的输入应该是新闻标题一类的数据,那么用富文本编辑器是否有必要?
恩,试试读取出来再截取。要求要有样式控制的
@wode301: 当样式,就不要截取了,直接用css隐藏吧,要不然我觉得很难控制样式不被截断..
.
@幻天芒: 哦,那读取出来,直接用css隐藏就可以实现那个效果吗?那会用了下没有效果,是还需要设置什么吗? 谢谢哦
@wode301: 不能完全实现,就是...这个不会有。css控制就是将超出容器的部分隐藏而已。
在 sql 查询分析器中能工作吗?
AbContent 是什么类型?
好像也不能,nvarchar类型的。是在百度编译器里输入的内容,带有格式,截取前20个,取到的都是格式,是不是截取的字符数小了呢?
@wode301: 那你 select AbContent from Abstract,在查询分析器里显示的啥?有截图么?
@Launcher: 也是带有样式的,截图上传不了呢
@wode301: 带有样式的话,就不能直接截取。可能你可以根据样式的规律,能够先略过那些样式标记后只截取内容字符。
@Launcher: 恩恩,谢谢哦
我在数据库试了下,语句没问题
你确定页面绑定你用的是AbContent1,而不是AbContent
晕,刚才试了下,绑定的是AbContent呢,这段代码是写在存储过程中的,要绑定AbContent1,该怎么做呢?谢谢
我知道了 谢谢
@wode301: 这段代码是写在存储过程中的,什么意思?!!!!AbContent字段不是也写在存储过程中吗,直接用AbContent1字段不就可以了吗
@Eddiew:恩恩 刚才没反应过来,刚给你回复完就反应过来了 谢谢哦