15

我继承了一个已转换为 vb 的 C# 应用程序。我收到一个错误,据我所知,该错误与转换无关。

我有一个 SQL 语句,它是....

SELECT   ResolverID AS ddlValue, ResolverTeam & ' | ' & ResolverPerson AS ddlText 
FROM     dbo.TblResolvers 
ORDER BY ResolverTeam, ResolverPerson;

当它运行时,我收到错误:

数据类型 nvarchar 和 varchar 在布尔 AND 运算符中不兼容。

表中ResolverTeamResolverPerson均指定为 ( nvarchar(255), null)

为什么我会收到此错误?

4

4 回答 4

26

尝试替换&; +从外观上看,您要做的是连接 2 列。您需要注意的是它nvarchar的大小是常规的两倍varchar,这意味着表nvarchar中没有字符varchar

于 2012-12-27T13:25:36.473 回答
4

您应该使用+for 字符串连接:

SELECT 
  ResolverID AS ddlValue, 
  ResolverTeam + ' | ' + ResolverPerson AS ddlText 
FROM dbo.TblResolvers 
Order By ResolverTeam, ResolverPerson;

为什么我会收到此错误?

由于&operator,即Bitwise AND ,您收到了该错误。

于 2012-12-27T13:23:37.607 回答
4

要在 MSSQL 中连接字符串,您应该使用+

SELECT ResolverID AS ddlValue, 
  ResolverTeam + ' | ' + ResolverPerson AS ddlText 
    FROM dbo.TblResolvers Order By ResolverTeam, ResolverPerson;
于 2012-12-27T13:24:09.240 回答
3

这是串联尝试吗?ResolverTeam & ' | ' & ResolverPerson

&是按位运算符AND,将其替换为+,看看会发生什么。

于 2012-12-27T13:25:20.547 回答