我想將大量的數據(文本)存儲在一個有六列和多達一萬行的表中。什麼是在c#中的表中存儲大量數據的最有效的方式是什麼?
我將以編程方式構建表格。 (含義我希望能夠添加行,因爲我去)
是datatable我的最佳選擇?我打算把它綁定到一個Telerik Grid Control for ASP.NET
我想知道我最好用另一種類型的我不知道的類。
我將使用控件的排序和頁面功能,但我不知道是否對底層對象太重要。
檢索,然後存儲,然後程序員的時間應該考慮當我說效率。
我想將大量的數據(文本)存儲在一個有六列和多達一萬行的表中。什麼是在c#中的表中存儲大量數據的最有效的方式是什麼?
我將以編程方式構建表格。 (含義我希望能夠添加行,因爲我去)
是datatable我的最佳選擇?我打算把它綁定到一個Telerik Grid Control for ASP.NET
我想知道我最好用另一種類型的我不知道的類。
我將使用控件的排序和頁面功能,但我不知道是否對底層對象太重要。
檢索,然後存儲,然後程序員的時間應該考慮當我說效率。
我會創建一個具有代表這六行的屬性的類,然後在列表中使用它。很快:
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;
}
}
然後,您可以枚舉列表集合或將其綁定到數據綁定控件或LINQ等等
如果您希望在多用戶環境中編程時間或檢索時間方面高效,則應考慮使用SQL Server。
這些實際上是Lucene的結果,但我想知道是否有任何其他更新的數據類爲這種類型的事情。 – Matt 2009-08-06 22:14:50
首先使用它,做什麼丹DIPLO描述。 DataTable是DataSet類的基礎數據結構。 DataSets因內存使用效率低下而臭名昭着。
其次,爲了保持快速:不要將所有10,000條記錄返回到一個頁面上。一次顯示一個子集(如20),在一個分頁的網格中。你必須傳遞和解析的數據越少越好。
接下來,如果可能,請關閉網格上的viewstate。 ViewState可以擴大您的頁面大小(在某些情況下爲2倍或更差)。這對於瀏覽器(查看頁面)和服務器(必須重新加載所有ViewState數據)都是個問題。盡你所能避免它。
如果您必須擁有ViewState,並且性能仍然存在問題,請將ViewState移動到服務器,以免它傳遞到瀏覽器。
您能否建議我在哪裏可以閱讀更多關於使用ViewState的性能問題? TiA – abatishchev 2009-08-06 23:13:52
http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/Truly-Understanding-Viewstate.aspx和http://msdn.microsoft.com/en-us/library/ms998549.aspx是開始的好地方。 – 2009-08-06 23:43:50
使用數據庫。
以什麼方式高效?檢索時間,存儲,程序員時間? – 2009-08-06 22:08:55
檢索,然後存儲,然後程序員的時間 我也將這添加到問題的主要描述。 – Matt 2009-08-06 22:09:49