C# 将字段从nchar转换为nvarchar字段,但在更新时仍会添加空格
我在C工作,我有一个问题,我不知道如何解决 我在SQLServer2008中有几个字段是nchar,并注意到最后的空格,所以我在SQLServer中将它们转换为nvarchar。然后为了进行测试,我在sql server端编辑了它们并删除了空格。在我从我的表格中发布更新之前,一切都很好,然后它将它们全部放回原处 我想,我这边必须有空格,所以我在写之前修剪字段,甚至在消息框中用*+field+*显示它,以确保没有空格。我一更新,他们就回来了 我假设这是数据集的问题,但它们都被设置为字符串。 那么,我该如何消除这些空间呢?我试过修剪所有的东西,但没什么区别 我是否必须销毁数据集中的表并重新创建它?我认为除了在sql server端进行更改之外,我不需要做任何事情C# 将字段从nchar转换为nvarchar字段,但在更新时仍会添加空格,c#,sql-server,sqldatatypes,C#,Sql Server,Sqldatatypes,我在C工作,我有一个问题,我不知道如何解决 我在SQLServer2008中有几个字段是nchar,并注意到最后的空格,所以我在SQLServer中将它们转换为nvarchar。然后为了进行测试,我在sql server端编辑了它们并删除了空格。在我从我的表格中发布更新之前,一切都很好,然后它将它们全部放回原处 我想,我这边必须有空格,所以我在写之前修剪字段,甚至在消息框中用*+field+*显示它,以确保没有空格。我一更新,他们就回来了 我假设这是数据集的问题,但它们都被设置为字符串。 那么,
请注意,我意识到仅仅转换字段就会留下空格,但我已经从数据中删除了它们。这是在应用程序端发生的。是否使用参数化SQL进行插入和更新
您的SQL参数类型是nvarchar吗?nchar不会在字符串中填充空格。数据类型不是问题所在。你能展示一下你的更新代码吗?事实上我发现nchar确实有空格。更改为nvarchar后,使用RTRIM进行大规模更新将清除数据。然而,问题似乎仍然存在于表单更新中。。表单是否可能调用仍然在某处声明nchar的存储过程?能否显示声明参数的代码并将DML命令发送到SQL Server?您是否使用参数化语句?他们仍然将变量声明为nchar吗?