none
ストアドプロシージャからADO.NETのデータセットへ RRS feed

  • 質問

  • いろいろと調べてみましたが、情報を取得できなかったので教えて下さい。

    VS2005からSQLDataAdapterを利用し、DataAdapterのSelectCommandプロパティのCommandTypeをStoredProcedureに設定し、SQLSERVER2005のストアドプロシージャを呼び出してデータセットに格納する処理を行っています。

    データを取得することはできるのですが、ストアドプロシージャでSELECT文を複数回使用すると複数回分のテーブルがデータセットに格納されて返されます。最後のSELECT文だけを対象とし、データセットへ1テーブルだけ格納したいのですが可能でしょうか?

    2006年7月7日 6:35

すべての返信

  • 一回しか SELECT しなかったらいいんじゃないですか?何故何度もしてるんです?
    2006年7月7日 8:58
  • TableAdapterならClearBeforeFillがありますが、SqlDataAdapterであれば、次のようにして、Selectの前にデータテーブルをクリアするしか無いでしょう。

    if(dataSet1.Tables["hogeTable"] != null)
    {
         dataSet1.Tables["hogeTable"].Clear();
    }

    2006年7月8日 14:39
  • 回答ありがとうございます。
    ストアドプロシージャ自体を理解していませんでした。

    単にSQLによるレコード件数を取得する場合に
    Select A From Table Where B > 0
    として、その後、
    @@ROUCOUNT
    で件数を取得するというT-SQLという言語自体を理解していない処理を行っていました。

    結局、
    Declare @tmp int
    Select @tmp = Count(*) From Table Where B > 0
    といった処理でテーブルは作成されないということで解決です。

    2006年10月18日 11:36