如何使用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;
    }
}

如何使用c#分页数据表

根据MSDN, Datatable的限制是16,777,216行。因此,当您将大量数据加载到数据表中时,它会影响应用程序和服务器内存的性能。因此,最好首先将这些庞大的数据存储到SQL server或其他数据库中。然后使用行数函数显示数据(如果您使用MS SQL 2005或2008)。如果你使用SQL Server 2012,那么你可以使用fetch。如果你使用MySQL服务器,那么你可以使用limit来一次显示有限的数据。我试图向您解释的是,在这种情况下,您需要服务器端分页而不是客户端分页。谢谢。