0

C# バッチ ジョブから呼び出される DB2 ストアド プロシージャを使用するプログラムがあります。.ExecuteReader() 呼び出しが行われると、Visual Studio 2010 は、データ リーダー オブジェクトの FieldCount が '0' で、HasRows プロパティが 'False' であることを示します。

ただし、さらに調べてみると、オブジェクトの奥深くに隠されていることがわかりました (これは、デバッグ中に「ローカル」の読み出しをふるいにかけることで発見されました)。ストアド プロシージャは実際にはデータを送り返し、必要な情報は奥深くに埋め込まれています。 DB2DataReader オブジェクト。

HasRows プロパティと FieldCount プロパティの両方がそれぞれ「False」と「0」であるため、組み込みメソッド (つまり、.GetString(x)、.GetValue(x).ToString()、等)。while(reader.Read()) コマンドは常に false になるため (HasRows プロパティにより)、結果をループできません。

何らかの種類の DataReader を使用してこのような問題を経験した人はいますか、または一般的な提案はありますか?

4

1 に答える 1

0

結局のところ、DB2 DataReader は使用するのに最適なオブジェクトではありませんでした。代わりに、DB2Connection オブジェクト (C#) で ExecuteNonQuery() コマンドを呼び出すだけで、このメソッドを使用してデータを引き出すことができました。

于 2012-12-10T21:45:15.903 に答える