2012-05-03 8 views
0

1つの接続で合計3つのSQLコマンドが実行されています。クエリが実行されると、1つの小さなものを除いてすべてが完全に機能します。最後のコマンドのUNION SELECTは、最後のステートメントの最後に 'TEXT'を付加しません。組合選択は最初のコマンドでは機能しますが、2番目のコマンドでは機能しませんか?

 SqlCommand commandtwo = new SqlCommand("SELECT PID = RIGHT(REPLICATE('0',8) + CAST(PID AS VARCHAR(8)),8) + ',' FROM dbo.MDRMASTER WHERE PARENTPID = @PARENTPID UNION SELECT 'TEXT'", con); 
     SqlCommand commandthree = new SqlCommand("SELECT INST = INST + ',' FROM dbo.MDRMASTER WHERE PARENTPID = @PARENTPID UNION SELECT 'TEXT'", con); 

私はcommandtwoがうまく動作するので、これは非常に奇妙です。私はまた、カンマがcommandthreeで働くようにするために、私は

= INST + ',' 

だけではなく

+ ',' 

なぜ私はこれらの奇妙な出来事が生じていますが書かなければならなかったこと、それは奇妙ましたか?または私は自分自身を初心者と考えているので、私は明らかにこのルールを知らないのですか?私はSQL Server 2008 R2を使用していますありがとうございます。

+0

@PARENTPIDはどのように初期化されますか? –

+0

「+」、「 '」の代わりに「」とはどういう意味ですか? –

+0

PARENTPIDは、テキストボックス値を介して実行されるパラメータです。 @Ebenは、コマンド '+'を追加するだけではカンマで値を区切りますが、コマンド3では単純に+ '、'は使えません、カンマが正しく動作するよう強制されています。できるだけ早くコードを投稿します。ありがとう。 – javasocute

答えて

0

INSTのデータタイプとは何ですか?

CAST(INST AS nvarchar) + ','が機能する場合があります。

0

UNIONが機能するはずです。 'TEXT'ビットがリストにないことを確認してください。 INST列が索引付けされている場合は、おそらく結果が順序付けされている可能性があります。

関連する問題