0

SqlCeDataReaderを使用してクエリの結果を読み取り、0行または多数の行を返す可能性のあるオブジェクトのリストに追加しています。

私のコード:

while (tourReader.Read())
{
    Tour newTour = TourDBA.RetrieveTour( (int)reader["Id"] );
    if (newTour != null)
        creater.Tours.Add(newTour); 
}

Selectクエリは0行を返す必要があるため、Read()はfalseを返し、ループに入ることがないと想定します。(このテストインスタンスのテーブルに何があるかはわかっています。このテストで予想される動作は0行です。)

これを回避する方法はありますか?(.HasRowsを使用すると、例外もスローされます。)

もう1つ、このクエリで使用している接続は開いており、メソッドがこのwhileループに到達する前に、ここで実行されているもの以外の別のSqCeCommandで使用されていました。それが重要な場合...

4

1 に答える 1

0

それをチェックしてください:

while (tourReader.Read()) // tourReader here
{
    Tour newTour = TourDBA.RetrieveTour( (int)reader["Id"] ); // reader here
    if (newTour != null)
        creater.Tours.Add(newTour); 
}

readertourReader同じですか?

于 2012-11-29T05:14:29.707 に答える