【发布时间】:2017-10-11 14:12:33
【问题描述】:
昨天,当我从我的 asp.net 应用程序中的存储过程返回一个 varchar(100) 输出参数时,我注意到一些奇怪的事情。看来返回的值现在包括额外的空格以返回完整的 100 个字符。这种行为是新的。我最近唯一改变的是将项目从 VS 2015 迁移到 2017。我正在使用 System.Data.SQLClient 连接到数据库。 varchar 列的 Select 语句仅返回列中的值,没有额外的空格。 Ansi_padding 对数据库关闭,并且在代码中的任何位置都没有设置。
set @Message = 'Project Updated!' --where @Message is varchar(100)
这将返回给客户端。
_UpdateStatus = oData.outputParams.Item("@Message")
_UpdateStatus = "Project Updated! "
对正在发生的事情有什么想法吗?
【问题讨论】:
-
你用的是什么数据库?
-
.NET 代码中参数的数据类型是什么?字符串还是字符串固定长度?请向我们展示更多您的代码
-
如果也提到数据库就更好了
-
从 SQL2016 中弃用 Ansi 填充:docs.microsoft.com/en-us/sql/database-engine/…
-
Sql 服务器并在代码中使用字符串类型。我现在只是在类属性中添加了一个修剪函数。我将尝试下面提到的调试选项。
标签: varchar visual-studio output-clause