【发布时间】:2012-02-22 02:44:34
【问题描述】:
我正在使用 C# 工作,但遇到一个不知道如何解决的问题。
我在sql server 2008中有几个字段是nchar,注意到最后的空格,所以我在sql server中将它们转换为nvarchar。然后为了测试,我在 sql server 端编辑了它们并删除了空格。在我从我的表单中发布更新之前,一切都很好,然后它把它们都放回去了。
我想,我必须有空格,所以我在写之前修剪了字段,甚至在消息框中用"*" + field + "*" 显示它只是为了确定,并且没有空格。当我更新时,他们又回来了。
我认为这是数据集的问题,但它们都只是设置为字符串。 那么如何摆脱空格呢?我已经尝试修剪所有内容,但没有任何区别。
我是否必须销毁数据集中的表并重新创建它?除了在 sql server 端更改它之外,我认为我不需要做任何事情。
请注意,我意识到仅转换字段会留下空格,但我已经从数据中删除了它们。这发生在应用程序端。
【问题讨论】:
-
nchar不会用空格填充您的字符串。数据类型不是问题。请出示您的更新代码好吗? -
实际上我发现 nchar 确实用空格填充。更改为 nvarchar 后,使用 RTRIM 进行大规模更新会清理数据。
-
但是,问题似乎仍然存在于表单更新中.. 表单是否有可能调用仍然在某处声明 nchar 的存储过程?
-
能否请您显示声明参数并将 DML 命令发送到 SQL Server 的代码?您是否使用参数化语句?他们还在将变量声明为 nchar 吗?
标签: c# sql-server sqldatatypes