所以我有回车的问题我有一个有文本区域的网页和报告我需要计算在这个文本区域中有多少人写的保存在sql表中调用sell和column note
所以我用linq做了
var count_notes = Vmsb.Sell.Where(v => !(v.Note == null || v.Note.Trim() == string.Empty)).Count();
Vmsb是我的dbcontext
问题是,当我的笔记只有回车或“\ r \ n”时,它会计算它,这不是我想要的生成的sql就是这样的
SELECT count(note) FROM [dbo].sell AS v WHERE (( NOT (v.[nota] IS NULL OR N'' = (LTRIM(RTRIM(v.[nota])))))
那我怎么办才能不计算“\ r \ n”
答案 0 :(得分:1)
我从未意识到SQL中的L/RTRIM
不会删除换行符。我能想到的唯一方法是
v.Note.Trim().Replace("\r", "").Replace("\n", "")
(抱歉Brice,写这篇文章时没看到你的评论)
当然,防止像这些“空”字符串这样的输入进入数据库要容易得多。我会考虑清理操作并在应用程序中添加一个网守。