1

我有一个对象叫:

SqlCeDataReader rdr;

因为SqlCeDataReader没有 HasRows 函数,所以写了一个:

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

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

rdr.Read() 不返回任何结果。

如果我注释掉第一次迭代,它会返回结果。

谢谢你。

4

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 回答