在充分采样后显示和刷新数据表

时间:2017-06-20 16:06:26

标签: c# winforms visual-studio datagrid

我正在使用HMI显示从PLC远程采集的样本。由于采样率(5秒),当代码运行for循环时,它会使用相同的值填充行,因为它需要一些时间来更改。我试图添加一些“最后状态”条件,但我的代码从未真正解决过。

下面是显示数据表的代码,但是单行的每一列都显示相同的值。

    public DataTable dt = new DataTable();

    public void Bindgrid(DataTable dtnew)
    {
        if (dtnew != null)
        {
            dt = dtnew;
            PicBox.Refresh();
        }
    }

    public void loadgrid()
    {

    dt.Clear();
    dt.Rows.Clear();

    for (int i = 1; i <= 3; i++)
    {
        DataRow row = dt.NewRow();
        row["NO"] = i.ToString();
        for (int jval = 1; jval <= totalColumntoDisplay; jval++)
        {
            row[jval.ToString()] = measurement;
        }

        dt.Rows.Add(row);

    }

        dataGridView1.AutoResizeColumns();
        dataGridView1.DataSource = dt;
        dataGridView1.AutoResizeColumns();
    }

    public void loadGridColums()
    {
        dt.Columns.Add("No");

        for (int jval = 1; jval <= totalColumntoDisplay; jval++)
        {
            dt.Columns.Add(jval.ToString());
        }
    }

    private void timer2_Tick(object sender, EventArgs e)
    {
        measurement = "PLC sampling value";
        loadgrid();
        Bindgrid(dt);
        lastmeasurement = measurement;
    }

我用if(lastmeasurement!= measurement)

更改了for循环
if(lastmeasurement!=measurement)
{
    row[jval.ToString()] = measurement;
    jvalue++;
}

但是列值(jvalue)从未改变过。

我唯一想要显示的是具有不同值的数据表(甚至数组),它的MEAN和标准偏差,但我很难以数据表中的方式显示这些数据。也许有一种更简单的方法来显示这些数据。

PS:我将采样值存储在数据库中,该数据库实际上与最后一个状态条件一起工作,如果它在某种程度上有用的话。

0 个答案:

没有答案