因此,我一直在研究這個項目,包括保存摺線圖,捕獲折線圖並重新繪製以進行比較。事情是我只是不知道一個有效的方法來保存它。我目前正在使用名爲Livecharts的庫,我正在使用此example。我個人認爲要保存每個單獨的價值,但覺得這樣會太過失控,因爲會有很多線條圖可以保存。所以我的問題是,有沒有人知道更好的方式來保存線圖?將折線圖保存到SQL數據庫中
任何幫助,將不勝感激。
因此,我一直在研究這個項目,包括保存摺線圖,捕獲折線圖並重新繪製以進行比較。事情是我只是不知道一個有效的方法來保存它。我目前正在使用名爲Livecharts的庫,我正在使用此example。我個人認爲要保存每個單獨的價值,但覺得這樣會太過失控,因爲會有很多線條圖可以保存。所以我的問題是,有沒有人知道更好的方式來保存線圖?將折線圖保存到SQL數據庫中
任何幫助,將不勝感激。
你可以打造專業化序列化類,即持有ChartValues
[Serializable]
public class ChartValues
{
public DateTime time;
public int Value;
}
然後在SQL表與XML列保存XML序列化的數據和這樣的還原:
foreach(ChartValue val in SavedChartValues)
{
ChartValues.Add(new MeasureModel
{
DateTime = val.Time,
Value = val.Value
});
}
爲什麼XML?這並不比將數據存儲在單獨的列中更有效率,這完全相反 –
這不是更有效率(並且它沒有被要求有效率)。但它更清潔,因爲單個圖表將由單個行表示。而整個只需要觸及的數據將在一個列中。這就是爲什麼我提出這個建議。出於好奇,會不會有XML會比任何其他解決方案更高效的情況? –
OP確實要求效率。 XML在某種程度上並不乾淨 - 它要複雜得多,比其他任何方式將複雜數據存儲在一個單元格中要花費更多的空間。 - BLOB,JSON甚至是SQLCLR類型 –
怎麼辦你想比較嗎?如果您想比較各個值,則需要存儲各個值。如果你想比較圖像,你需要將它們存儲爲斑點。無論如何,對於數據庫而言,「不可用」意味着千兆字節。 BTW所有版本的SQL Server 2016 SP1都支持列存儲索引,壓縮和內存表 - 甚至Express和LocalDB –
您需要存儲多少個點?你想要進行什麼樣的比較? SQL Server可以使用窗口並計算運行總和,平均值等,因此您可能需要爲此只存儲所有數據。如果您將兩列都添加到聚集索引中,您將有快速範圍查詢,立即開啓窗口 –
圖表可能會運行大約5分鐘。所以所有的x和y值。有多少可能。至於比較,我正在比較繪製的圖。 – Hypergyzed