15

vb に変換した C# アプリを継承しました。私が見る限り、変換とは何の関係もないエラーが1つ発生します。

私は....であるSQL文を持っています

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

これを実行すると、次のエラーが表示されます。

データ型 nvarchar と varchar は、ブール AND 演算子では互換性がありません。

表では、 と の両方ResolverTeamを( )、)ResolverPersonとして指定します。nvarchar(255null

このエラーが発生するのはなぜですか?

4

4 に答える 4

26

&を aに置き換えてみてください+。一見すると、あなたがやろうとしていることは、2 つの列を連結することです。注意が必要なnvarcharのは、通常の 2 倍のサイズであることです。これは、表にないvarchar文字が含まれていることを意味します。nvarcharvarchar

于 2012-12-27T13:25:36.473 に答える
4

+文字列連結には を使用する必要があります。

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

このエラーが発生するのはなぜですか?

ビット単位の ANDである&operatorが原因で、そのエラーが発生していました。

于 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 に答える