我有一个名为的对象:
SqlCeDataReader rdr;
因为SqlCeDataReader
没有HasRows函数,所以我写了一个:
if (!HasRows(rdr)) // Iterate to find number of rows
{
}
while (rdr.Read()) // Read the reader
{
}
rdr.Read()不会返回任何结果。
如果我注释掉第一次迭代,它会返回结果。
谢谢。
答案 0 :(得分:2)
你不能迭代两次 - SqlCeDataReader“提供了一种从数据源读取仅向前数据行流的方法。” - MSDN。
但确实有HasRows
property - 只是使用它?
答案 1 :(得分: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.");
}
}