我有3个表(一个用JSON文件填充,第二个用固定信息填充,第三个是从第一个和第二个数据计算),所有这些表都显示在DGV1,DGV2和DGV3中。
现在我正在尝试创建updater(),它将重新下载JSON并在第一个和第三个表中重新进行计算。
这是updater()
中的代码:
public void updater()
{
table.Rows.Clear();
table.Columns.Clear();
table3.Rows.Clear();
table3.Columns.Clear();
table.Clear();
table3.Clear();
DataGridView1.Refresh();
dataGridView3.Refresh();
// refill data grid view 1
loadJSONfromAPIandSave();
loadingJSONtoDGV1();
DataGridView1.Refresh();
// refill data grid view 3
DGV3Fill();
}
DGV1通过并完美填充。然而,DGV3获得Null异常,因为它看不到DGV1中的数据.... 那么有什么建议吗?
DGV3Fill():
public void DGV3Fill()
{
table3.Columns.Add("Algorithm");
table3.Columns.Add("Profit");
dataGridView3.DataSource = table3;
for (int i = 0; i < ZpoolAlgoArray.Length; i++)
{
if (ZpoolAlgoArray[i] == "blakecoin" | ZpoolAlgoArray[i] == "blake2s" | ZpoolAlgoArray[i] == "decred" | ZpoolAlgoArray[i] == "keccak" | ZpoolAlgoArray[i] == "quark" | ZpoolAlgoArray[i] == "qubit" | ZpoolAlgoArray[i] == "x17")
{
double X = Convert.ToDouble(DataGridView1[10, i].Value) * ((Convert.ToDouble(dataGridView2[1, i].Value)) / (1024 * 1024 * 1024));
double Y = Math.Round(X, 8) * BTCVal();
table3.Rows.Add(ZpoolAlgoArray[i], Y ); // NULL EXCEPTION HERE! (i=1, ZpoolAlgoArray[1]="blakecoin", Y=2.8)
}
else
{
double X = Convert.ToDouble(DataGridView1[10, i].Value) * ((Convert.ToDouble(dataGridView2[1, i].Value)) / (1024 * 1024));
double Y = Math.Round(X, 8)*BTCVal();
table3.Rows.Add(ZpoolAlgoArray[i], Y );
}
}
}
解决!这是问题(我有一个锁定表的排序功能)
dataGridView3.Sort(dataGridView3.Columns[1], ListSortDirection.Descending);