C# SQL Server检索数据时,数据获得了额外的许多空间

C# SQL Server检索数据时,数据获得了额外的许多空间,c#,.net,sql-server,azure,azure-sql-database,C#,.net,Sql Server,Azure,Azure Sql Database,我使用的是azure sql server数据库,但是,当我从sql server检索数据时,数据获得了额外的大量空间,结果我不知道客户端是否在我的数据中输入了任何空间,我是否可以不从数据库中选择这些额外空间? 尝试使用C的Trim函数删除字符串或字符串变量值中的空格。请参考此项。当您检索数据并存储在数据变量中时,您可以使用如下所示的修剪方法 var data=record.ToList()[0].email.trim(); 或者,如果您不想这样做,可以在将数据存储到数据库之前使用tr

我使用的是azure sql server数据库,但是,当我从sql server检索数据时,数据获得了额外的大量空间,结果我不知道客户端是否在我的数据中输入了任何空间,我是否可以不从数据库中选择这些额外空间?

尝试使用C的Trim函数删除字符串或字符串变量值中的空格。请参考此项。

当您检索数据并存储在数据变量中时,您可以使用如下所示的修剪方法

    var data=record.ToList()[0].email.trim();
或者,如果您不想这样做,可以在将数据存储到数据库之前使用trim方法。这样,您将100%确保DB在该列中不会有空格


我认为你应该两者都做,那样做没有坏处

因为您的列类型是nchar50,所以无论插入的数据长度如何,它都将始终包含50个字符。剩余的字符用空格填充

要解决此问题,必须更改表定义,使电子邮件列为nvarchar50,然后可以更新表,删除所有空白


可能也值得做一些其他答案建议的事情,并在应用程序中删除额外的空白,因为仍然没有任何东西阻止插入额外的空白。

数据库中的电子邮件列定义是什么?@DaleBurrell nchar50,全文规范“否”,标识“否,排序规则数据库默认值>SQL拉丁语1通用CP1 CI作为您的答案。。。无论数据有多长,nchar50始终为50个字符。如果不需要空白,则需要nvarchar50。nchar50意味着它将始终被填充以填充50。在你的C语言中,只需修剪一下就可以去掉空格。@DaleBurrell我试过,甚至试过重新插入数据,都是一样的,不起作用。这不是解决办法,问题是如果今天客户端在我的数据中输入空格,那么我应该修剪这些空格数据吗?不!修剪只会删除文本前/后的空格。但是,如果这不符合要求,并且出于某种原因希望保留这些空间,则必须更改模式以使用nvarchar50@ryan1555,则应向系统中添加前端和后端验证,以便客户端无法向数据库中输入任何空间。