2010-05-13 50 views
1

我有一個名爲Field1的數據庫,每個數據項有100個nchars。 每次我添加了一個值,它被存儲爲:插入沒有拖尾空格的字符串SQL

"value  (100-ValueLength Spaces)  " 

所以基本上每個儲值有後空格的字符串。當我嘗試這樣做時,這會變成一個問題:

if (value == "Example") 

因爲字符串之後的所有空白空間。 如何獲取它,以便存儲的值不具有所有這些尾隨空格?

+0

什麼味道的SQL? – Jon 2010-05-13 17:34:34

+0

不確定,雖然我認爲這很明顯SQL 我使用Microsoft SQL Server Management Studio 2008(如果有幫助的話)。 – sooprise 2010-05-13 17:36:33

回答

7

如果您想要一個可變長度的字符串,請使用nvarchar(100)而不是nchar(100)。後者總是有100個字符,前者最多可以有100個字符,但不會填滿空間。

+0

明白了。當我開始構建數據庫時,我不知道nchar和nvarchar之間的區別,並選擇使用nchar,現在我意識到我犯的錯誤。 – sooprise 2010-05-13 17:50:13

3

插入時使用sql LTRIMRTRIM函數。

+0

我正在使用LINQ插入,是否有一個LINQ相當於你在說什麼? – sooprise 2010-05-13 17:40:11

+1

然後,只需將Trim應用於字符串,在這種情況下就不需要使用sql函數。 – thelost 2010-05-13 17:44:33

2

您是否可以使用nvarchar,如果您不符合所需的字符串長度,則不會添加填充。如果是這樣,可能會更好,然後不斷修剪你的字符串條目。

+0

我剛剛讀了nvarchar和nchar之間的區別。我會嘗試實現這個字段類型,看看是否有幫助。 – sooprise 2010-05-13 17:42:54