1

次のオブジェクトがあります。

SqlCeDataReader rdr;

SqlCeDataReaderHasRows 関数がないため、次のように記述しました。

if (!HasRows(rdr)) // Iterate to find number of rows
{
}

while (rdr.Read()) // Read the reader
{
}

rdr.Read() は結果を返しません。

最初の反復をコメントアウトすると、結果が返されます。

ありがとうございました。

4

2 に答える 2

2

2 回繰り返すことはできません。SqlCeDataReader は、「データ ソースからデータ行の前方のみのストリームを読み取る方法を提供します」。-MSDN。_

しかし、それにはHasRowsプロパティがあります-それを使用するだけですか?

于 2012-07-03T05:15:12.073 に答える
0

私もそれを正しく行う方法がわかりませんが、私のアプリで私は次のようなものを書きました

using (SqlCeDataReader rdr = sceCmd.ExecuteReader())
{
    int i = 0;
    while (rdr.Read())
    { 
        // some other code here
        i++;
    }
    rdr.close();
    if(i==0)
    {
        // something to say if its empty
        Console.WriteLine("No data found.");
    } else {
        // something else to say if its not empty
        Console.WriteLine(i + "data found.");
    }
}
于 2012-07-03T05:18:32.557 に答える