Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 保存到数据库时字符串末尾的空格字符_C#_Linq_Sqldatatypes - Fatal编程技术网

C# 保存到数据库时字符串末尾的空格字符

C# 保存到数据库时字符串末尾的空格字符,c#,linq,sqldatatypes,C#,Linq,Sqldatatypes,我的表中有一个nvarchar(50)字段。例如,当我保存长度为12个字符的字符串时,它会保存长度为50个字符的字符串。实际上,它在字符串的末尾添加了一个空格字符。我应该选择另一种数据类型吗 tmp_Person.NameFamily = txt_NameFamily.Text.Trim(); PersonKBBSHDataContext.PersonInfos.InsertOnSubmit(tmp_Person); PersonKBBSHDataContext.SubmitChanges();

我的表中有一个
nvarchar(50)
字段。例如,当我保存长度为
12个字符的字符串时,它会保存长度为
50个字符的字符串。实际上,它在字符串的末尾添加了一个空格字符。我应该选择另一种数据类型吗

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

当我在表的
NameFamily
字段中直接(in)保存字符串时,一切正常

使用此
Trim(txt_NameFamily.Text)
如果使用实体框架,请在NVarchar字段上将
固定长度属性设置为
true


您仍然可以使用
Trim
,但这只是“修复”
文本框.Text
值,与数据库无关。

我发现了问题。我刚刚在
.dbml
文件中再次添加了我的表,一切正常。

我也遇到了同样的问题。从Mapping类的Nvarchar属性中删除.IsFixedLength(),我的问题就解决了

Me.Property(Function(t) t.Description).IsFixedLength().HasMaxLength(500)
替换为

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

在将文本框值指定给名称之前,您不能在文本框值上使用.Trim()吗?这里肯定有其他问题。如果您有一个12chr字符串,并将其保存到nvarchar(50)中,则数据库不应在末尾添加空格填充。仔细检查是否确实保存到nvarchar(50)列。
tmp\u Person.NameFamily
string(System.string)
.dbml
中,问题是在我发送字符串以保存到数据库之后。我正在保存到nvarchar(50)列。错误来自
.dbml'文件,并将表重新添加到
dbml`中。一切正常都有相同的问题。必须在相关EntityType中的属性的
.edmx
文件设置
FixedLength
属性中将其修复为
false
。出现此问题的原因是该列首先被设置为
nchar