我从数据库检索了10行数据,但是我想跳过第一行,原因是我的表中的第一个项目已经在主div上显示了。现在我想在它下面列出所有剩余的记录。我该怎么做?
我的代码可以正常工作,并且我可以显示所有来自读取器的记录。现在我只需要知道如何跳过第一个。
我从数据库检索了10行数据,但是我想跳过第一行,原因是我的表中的第一个项目已经在主div上显示了。现在我想在它下面列出所有剩余的记录。我该怎么做?
我的代码可以正常工作,并且我可以显示所有来自读取器的记录。现在我只需要知道如何跳过第一个。
从第一个开始阅读,然后继续阅读其他内容:
myReader.Read();
while(myReader.Read())
{
//do stuff
}
如果你喜欢使用Linq,在这里有一个技巧可以让它与DataReader一起工作,使用一个简单的扩展方法:
public static IEnumerable<IDataRecord> AsEnumerable(this IDataReader reader)
{
while (reader.Read())
{
yield return reader;
}
}
您可以使用 Linq 的 Skip
方法:
using (var reader = command.ExecuteRead())
{
foreach(var row in reader.AsEnumerable.Skip(1))
{
// whatever you do with the data...
}
}
reader.Read()
即可开始,以前进到下一个记录。然后像平常一样处理读取器。您可能仍然想要检查来自第一次调用的reader.Read()
的值——如果它返回false
,那么您期望的第一条记录甚至都不存在。我无法不想到,当您需要跳过DataReader中的第一行时,还有其他“错误”存在:
您的问题暗示着缺乏编码经验——无论是总体上还是在DataReader方面或其他方面。如果您解释一下为什么需要跳过第一行,也许您可以获得更多帮助。