我正从我的数据库中检索10个,但我想跳过第一个。原因是我的表中的第一项已经显示在我页面上的主div中。现在我想列出其下的所有其他剩余记录。我该如何做到这一点?
我的代码工作正常,我可以显示阅读器的所有记录。我现在需要的是如何跳过第一个。
答案 0 :(得分:13)
只需阅读第一个,然后继续其他人:
myReader.Read();
while(myReader.Read())
{
//do stuff
}
答案 1 :(得分:10)
如果您想使用Linq,可以使用简单的扩展方法来使用DataReaders:
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...
}
}
答案 2 :(得分:1)
只需拨打reader.Read()
一个额外的时间开始,即可前进到下一条记录。然后正常对待读者。您可能仍希望检查第一次调用中reader.Read()
的值 - 如果它返回false
,那么甚至没有您期望的第一条记录。
答案 3 :(得分:0)
当你需要跳过DataReader中的第一行时,我不禁想到还有别的“错误”:
您的问题意味着缺乏编码经验 - 无论是一般情况还是与DataReader等有关。如果您解释为什么需要跳过第一行,也许你可以得到更多的帮助?