connection.Open();
var cmd = new SqlCommand("SELECT TOP 1000 [Id] ,[Name] FROM [SomeBase]", connection); //Here
context.MaxID = 100;
int en = 5; //Maximum number of rows in the slice
int iter = 0; //Iterator for each single row in the slice
try
{
SqlDataReader reader = cmd.ExecuteReader();
if(reader.HasRows)
{
while (iter < en) //I need 1-5 rows in first iteration, 6-10 in second...
{
iter++;
reader.Read();
context.TextLog += String.Format("{0}\t{1}\n",
reader.GetInt64(0),
reader.GetString(1));
}
}
reader.Close();
}
我试图从结果中获取片的行。 我期望:前五个,然后退出脚本。下一个开始将是第二个五个结果(6-10)等。 我如何管理它,例如使用MaxID或某种迭代器。如何用SQLReader使用.NET读取片段查询结果
告诉数据库服务器,您只需要那些带有LIMIT/FETCH和OFFSET的部分。不要告诉它你想要1000个结果,只是扔掉它们。 –
[在SQL Server中分页结果的最佳方式是什么]的可能重复(http://stackoverflow.com/questions/109232/what-is-the-best-way-to-paginate-results-in-sql-服务器) – bbsimonbb