【问题标题】:Converted a field from nchar to nvarchar field, but still adds spaces on update将字段从 nchar 转换为 nvarchar 字段,但仍会在更新时添加空格
【发布时间】: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


【解决方案1】:

您是否使用参数化 SQL(用于插入和更新)?

您的 SQL 参数类型是 nvarchar 吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 2010-12-24
    • 2013-03-15
    • 2021-03-06
    相关资源
    最近更新 更多