2013-03-22 46 views
0

所以我有一個回車的問題我有網頁有一個文本區域和一個報告我需要計算有多少人寫在這個文本區域保存在一個SQL表格撥打銷售和列記回車或LINQ的新線

所以使用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

據我所知,SQL Server的LTRIM/RTRIM函數不會去掉一些空白字符。你可以嘗試使用'Replace()'。 – bricelam 2013-03-22 22:58:27

回答

1

我從來沒有意識到的事實L/RTRIM在SQL呢不刪除換行符。我能想到的唯一的辦法就是

v.Note.Trim().Replace("\r", "").Replace("\n", "") 

(對不起布萊斯,沒看到你的評論時寫這篇)

當然這是很容易以防止輸入這樣的「空」的字符串進入數據庫。我會考慮一個清理行動,並在應用程序中添加一個看門人。

+0

工作感謝你,是的,現在我會阻止這些「空」字符串進入數據庫。 – 2013-03-23 13:45:48