2009-07-03 5 views
0

stored procedureから行をフェッチしているTableAdapterがあります。何らかの理由で結果がない場合、TableAdapterはNULLではなく値0のINTを返します。ストアドプロシージャはNOCOUNT ONです。TableAdapterがASP.NETでファントム結果を返しています

この問題は、表示されていないEmptyDataTemplateでフロントエンドにリストビューがあることです。クエリアナライザでクエリを実行すると、NULLの代わりに0が返されることがわかります。

ストアドプロシージャには、単純な「SELECT * FROM WHERE」と1つのINTパラメータ(出力なし)があります。クエリアナライザで実行すると、期待どおり出力が得られません。

何が起こっているのですか?

答えて

1

ストアドプロシージャが結果を返すようです。すべてのストアドプロシージャは結果コードを返します。これはおそらくこれです。

+0

実際、私はこれが当てはまらないことを確認しました。クエリアナライザでクエリを実行しても結果が返されず、データセットデザイナで結果が得られなかった他のSPを実行しても、このファントム結果は得られませんでした。 –

+0

SQL Server Management Studioでストアドプロシージャを実行し、[新しいウィンドウに実行]を選択した場合は、@rcを再表示しています。 sprocが実行され、それを変更しない場合、これは常に0です。それは偶然かもしれない。 –

+0

さて、そうです、そうです。しかし、これが当てはまる場合、データセットデザイナに結果がない場合、すべてのSPは0を返しますか?これは起こっていないようです。 そして、本当にイライラするのは、私のListViewが結果がないことを認識しないということです。何が起きているのかについての考えはありますか? –

1

クエリのtableAdapterのExcuteModeプロパティを確認します。 「Reader」に設定されていることを確認してください。 ExecuteModeのための3つのオプションがあります:

  1. Readerが - データ
  2. スカラの行を返します - 非問合せ
  3. 単一の値を返します - 行数をint型を返すパラメータをチェックまた

に影響を与えました戻り値パラメータのコレクション。 AllowDBNull(nullを許可する場合はtrue)、Direction(ReturnValue)を持つ必要があります。このパラメータは、SPの結果を保持する必要があります。あなたの例では、返されたレコードがないのでnullになります。

関連する問題