在c#中以表格形式存储大量数据的最有效方法是什么?

时间:2009-08-06 22:04:01

标签: asp.net datatable telerik

我希望在包含六列和一万行的表中存储大量数据(文本)。

我将以编程方式构建表。 (这意味着我希望能够随时添加行)

数据表是我最好的选择吗?我打算将它绑定到Telerik Grid Control for ASP.NET

我想知道我最好再去参加另一种我不知道的课程。

我将使用控件能力进行排序和分页,但我不知道这对底层对象是否过重。

当我说效率时,应该考虑检索,然后存储然后编程时间。

4 个答案:

答案 0 :(得分:4)

我将创建一个具有表示这六行的属性的类,然后在List中使用它。很快:

public class Result
{
    public string Title { get; set; }
    public double Score { get; set; }
    public string Summary { get; set; }
    // etc.

    public Result(string title, double score, string summary)
    {
        Title = title;
        Score = score;
        Summary = summary;
    }

    public Result() { }
}

public class Test
{
    public static IList<Result> GetResults()
    {
        List<Result> results = new List<Result>();

        results.Add(new Result("First result", 0.914, "This is the summary"));
        results.Add(new Result("Second result", 0.783, "More summary...."));
        results.Add(new Result { Title = "Third", Score = 0.54, Summary = "Anonymous I am..." });
        // etc
        return results;
    }
}

然后,您可以枚举List集合或将其绑定到数据绑定控件或将其与LINQ等一起使用。

答案 1 :(得分:2)

首先,执行Dan Diplo所描述的内容。 DataTable是DataSet类的基础数据结构。 DataSet因内存使用效率低而臭名昭着。

其次,为了保持快速:不要将所有10,000条记录都返回到一页。在分页网格中一次显示一个子集(如20)。您必须传递的数据越少,解析得越好。

接下来,如果可能,请在网格上关闭视图状态。 ViewState可以扩大您的页面大小(在某些情况下为2倍或更差)。这对浏览器(查看页面)和服务器(必须重新加载所有ViewState数据)都是一个问题。尽量避免使用它。

如果您必须拥有ViewState,并且性能仍然存在并且出现问题,请将ViewState移至服务器,因此不会将其传递给浏览器。

答案 2 :(得分:1)

如果您希望在多用户环境中的编程时间或检索时间方面高效,则应考虑使用SQL Server。

答案 3 :(得分:0)

使用数据库。