2011-10-21 66 views
6

空字符串我一直在使用LINQ現在到SQL幾年到SQL,但是這是我第一次看到這種行爲。的Bug LINQ與數據庫

我有一個數據庫表有幾列(varchar(15)),可能包含空字符串('')。我通過運行LEN(Column)並檢查結果是0驗證這一點。

現在,當我把這種從LINQ2SQL,它返回與含有單個空格(string.Length == 1)的字符串的物場。

我可以應用一些解決方法,比如在數據庫上設置NULL或修剪字符串,但是我想知道是否有人在之前遇到過這個問題,或者如果知道該錯誤(在MS Connect上報告) 。如果沒有,我會報告它。

謝謝。

+0

難道這發生NULL值和空字符串之間的區別?例如:在一個文件中,你將如何存儲一個NULL字符串(文件len = 0)和一個空字符串(也是文件len = 0)。在OO世界空字符串和空字符串是2個不同的東西,而在數據世界裏,他們似乎是相同的 – Ankur

回答

8

的問題是與LEN功能:

SELECT LEN(' ') 

返回0在SQL Server;它是一個總PITA。

SELECT DATALENGTH(' ') 

返回1

+0

甜的感謝!我們的一個DB傢伙也學會了忽略尾隨空白新的東西:) – leppie

+0

我想補充,'LEN'。 – leppie

+0

幾個月來一直令我煩惱! – briantyler