2012-06-22 43 views
5

我的表中有一個nvarchar(50)字段。例如,當我保存一個字符串爲12 character Length時,它會將該字符串保存爲50 character length。實際上,它在字符串的末尾添加了一個空格字符。我應該選擇另一種數據類型嗎?保存到數據庫時字符串末尾的空格字符

tmp_Person.NameFamily = txt_NameFamily.Text.Trim(); 
PersonKBBSHDataContext.PersonInfos.InsertOnSubmit(tmp_Person); 
PersonKBBSHDataContext.SubmitChanges(); 

當我在表的NameFamily場直接保存一個字符串(在SQL Server),一切都很好。

+0

廣東話更換你只是用.Trim()上的文本框的值將其分配給在名稱前? – CSharpened

+0

這裏還有其他一些錯誤。如果你有一個12字節的字符串並將它保存到一個nvarchar(50),那麼數據庫不應該在最後加上空格。仔細檢查你是否真的保存到nvarchar(50)列。 –

+0

'tmp_Person.NameFamily'是'.dbml'中的字符串(System.String)',問題在於我發送字符串保存在數據庫中。我保存到nvarchar(50)列。 – hamze

回答

1

我發現了這個問題。我只是在.dbml文件中再次添加我的表格,一切都很順利。

-2

使用此Trim(txt_NameFamily.Text)

1

如果使用實體框架,您NVARCHAR字段設置了Fixed Length屬性true

您仍然可以使用Trim,但這只是爲了「修復」textBox.Text值,並且與數據庫無關。

1

我有同樣的問題。從Mapping類中的Nvarchar屬性中刪除.IsFixedLength(),並解決了我的問題。

Me.Property(Function(t) t.Description).IsFixedLength().HasMaxLength(500) 

Me.Property(Function(t) t.Description).HasMaxLength(500) 
+0

有同樣的問題。必須在'.edmx'文件設置'FixedLength'屬性中將它修復爲'false'以用於相關EntityType中的屬性。問題發生是因爲該列先被設置爲「nchar」。 – Dehalion

相關問題