今天在做项目的时候发现了一个以前从来怪问题:有一个TextBox多行文本框,用来保存备注信息,当然在提交该备注信息到数据时,里面也可以换行等标记。在页面显示的时候 ,也要把这些标记给显示出来。
可就是这些简单的标记让我遇到了麻烦,我插入数据库的时候用的是Server.HtmlEncode() 的方法,显示时用的是Server.HtmlDecode(), 但是这样不行。后来我就在Server.HtmlEncode()改为Server.HtmlEncode().Replace("/n","<br>"),然后在显示的时候再Decode回来,结果还是以失败告终,最后察看数据库得知,我插入的数据并没有在该换行的地方加上换行标记,所以在显示的时候才会出现问题。 数据库中该列字段的数据类型是text型的,我清晰的记得SQLServer2000中如果你加上换行符的话,就能在数据库中相应的位置看到你换行的结果,但是SQLServer2005怎么不行了呢,为什么呢?
经过仔细的调试分析,最终还是找到了根源,原来在插入数据库的时候/n被当作非法字符替换掉了,所以数据库中就找不到换行符了,于是我进行了如下处理“//n”,结果一切搞定。
从中可以得知,以后再做程序的时候一定要从实际出发,不能一味本着经验办事!呵呵!