Dot Net字符文字

时间:2011-12-04 19:11:25

标签: .net

我记得很久以前我在使用.NET中的角色时。从SQL数据库(char字段)获取的值存储在dot net char变量中:“a”(字符后面的一系列空格)。我的应用程序中的这个错误导致了问题。

任何人都可以解释这种情况何时发生,因为我似乎无法重现行为,我想避免我正在处理的应用程序中的错误。

2 个答案:

答案 0 :(得分:3)

SQL Server中的CHAR数据类型是固定大小字段。

因此,对于CHAR(2),如果只使用单个字符填充它,则会添加一个空格作为填充(以及更大的CHAR字段的空格)。

从DB读取时,您也将获得这些空格。这不是错误。

您应该为数据库字段使用正确的数据类型 - 如果您有可变长度的文本,请使用VARCHAR(或NVARCHAR),而不是CHAR

答案 1 :(得分:2)

这不是错误。 SQL中的CHAR是固定长度,并使用空格填充列定义的长度。通过" dot net char变量",我假设您正在讨论字符串数据类型而不是实际的字符数组。

如果你想要没有填充的可变长度字符串,那么使用VARCHAR或NVARCHAR。