如何使用c#分页数据表
本文关键字:数据表 分页 何使用 | 更新日期: 2023-09-27 18:17:06
我想读取两个日期之间的文件并将值添加到数据表中。然后希望在网格中显示可分页的数据值。但问题是,这些文件包含大量的数据(超过1M),所以如果我使用gridview默认分页我的应用程序挂起。我要在datatable中分页。我怎么做呢?如有任何示例代码的想法,请。
public DataTable CreateDataSource(DateTime fromDate, DateTime toDate)
{
int i = 0;
string visitorCountry = "";
try
{
dt = dtVisitLog();
for (DateTime x = fromDate; x <= toDate; x = x.AddDays(1))
{
string startDate = x.Year.ToString().Substring(2, 2) + x.Month.ToString("d2") + x.Day.ToString("d2");
string FILE_NAME = pathName + "''u_ex" + startDate + ".log";
if (File.Exists(FILE_NAME))
{
FileStream fs = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read,
FileShare.ReadWrite);
StreamReader sr = new StreamReader(fs);
string strResult = sr.ReadToEnd();
sr.Dispose();
fs.Dispose();
sr = null;
fs = null;
string[] arLogLines = strResult.Split(Convert.ToChar("'n"));
for (i = arLogLines.Length-2; i > 3; i--)
{
string[] attribute = arLogLines[i].Split(Convert.ToChar(" "));
dt.Rows.Add(attribute[0], attribute[1], attribute[8], attribute[4], attribute[7], visitorCountry);
}
}
}
return dt;
}
catch (Exception ex)
{
return null;
}
}
根据MSDN, Datatable的限制是16,777,216行。因此,当您将大量数据加载到数据表中时,它会影响应用程序和服务器内存的性能。因此,最好首先将这些庞大的数据存储到SQL server或其他数据库中。然后使用行数函数显示数据(如果您使用MS SQL 2005或2008)。如果你使用SQL Server 2012,那么你可以使用fetch。如果你使用MySQL服务器,那么你可以使用limit来一次显示有限的数据。我试图向您解释的是,在这种情况下,您需要服务器端分页而不是客户端分页。谢谢。