我試過這種方法從數據表中讀取數據,還有其他更好的方法來將數據存儲在列表中(以減少內存使用量)。從數據表中讀取數據時減少內存使用量
代碼:
foreach (System.Data.DataRow row in table.Rows)
{
Myclassdef data = new Myclassdef();
data.Data = new Dictionary<string, object>();
foreach (DataColumn columninfo in table.Columns)
{
object value = row[columninfo.ColumnName];
Myclassdef.Data.Add(columninfo.ColumnName, value);
}
}
什麼你確定你的內存問題是由'DataTable'造成的數據?您將全部映射到每個行都帶有字典的自定義類中。所以你需要的內存比單獨使用DataTable多兩倍。爲什麼不使用'DataReader'從數據庫中讀取這些值?這種數據流不需要在內存中存儲任何內容。 –
@TimSchmelter如何避免超過兩次內存使用 – Ragavan
@Smith:如果數據源是數據庫,請使用下面的'DataReader'方法。然後,「Myclassdef」實例與他們的字典是唯一的內存消費者。 –