投稿者 まる  (社会人) 投稿日時 2009/2/27 18:46:05
いつもお世話になっております。

今1つのデータベースから2つのストアドプロシージャで読み込もうとしているのですが、うまくいきません・・・。

「このコマンドに関連付けられている DataReader が既に開かれています。このコマンドを最初に閉じる必要があります。」というエラーです。
でも今自分がやろうとしているものは、1つめのストアドプロシージャ実行して、データを取得しつつ、2つめのストアドプロシージャを実行して、データを取得したいのです。

誰か解決法があればお願いいたします。

データベースへは接続されているものとします。

メインクラス
Dim Reader As SqlClient.SqlDataReader
Dim Command As New SqlClient.SqlCommand

With Command
    .CommandType = CommandType.StoredProcedure
    .CommandText = "Stored1"
    .Parameters.Clear()
End With

Reader=Command.ExecuteReader()

While Reader.Read()
    Call 別クラス.Test()
End While

別クラス
Dim Command As New SqlClient.SqlCommand

With Command
    .CommandType = CommandType.StoredProcedure
    .CommandText = "Stored2"
    .Parameters.Clear()
    .Parameters.AddWithValue("@x", x)
    .Parameters.Add("Return", SqlDbType.Decimal)
    .Parameters("Return").Direction = ParameterDirection.ReturnValue
    .ExecuteNonQuery() ←ここでエラーになります。
End With