我想将大量数据(文本)存储在一个有六列和多达一万行的表中。
我将以编程方式构建表格。(意思是我希望能够随时添加行)
数据表是我最好的选择吗?我打算将它绑定到 ASP.NET 的 Telerik Grid Control
我想知道我最好参加另一种我不知道的课程。
我将使用控件功能进行排序和分页,但我不知道这对底层对象是否过于重要。
当我说效率时,应该考虑检索,然后是存储,然后是程序员的时间。
我将创建一个具有代表这六行的属性的类,然后在列表中使用它。很快:
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 等一起使用。
首先,按照 Dan Diplo 的描述去做。DataTable 是 DataSet 类的基础数据结构。数据集因内存使用效率低而臭名昭著。
其次,为了保持快速:不要将所有 10,000 条记录都返回到一页上。在分页网格中一次显示一个子集(如 20 个)。您必须传递和解析的数据越少越好。
接下来,如果可能,关闭网格上的视图状态。ViewState 可以扩大您的页面大小(在某些情况下是 2 倍或更差)。这对于浏览器(查看页面)和服务器(必须重新加载所有 ViewState 数据)都是一个问题。尽量避免它。
如果您必须拥有 ViewState,并且性能仍然存在问题,请将 ViewState 移动到服务器,因此它不会传递给浏览器。
如果您想在多用户环境中的编程时间或检索时间方面提高效率,您应该考虑使用 SQL Server。
使用数据库。