DataGridView

时间:2017-12-26 00:53:47

标签: c# json datagridview datagrid

我有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);

0 个答案:

没有答案