0

我有一个DataTable代码。Datatable具有三个名为 1- ID、 2- Tag、 3-的列,Time如下所示。在这里,当我向 中添加一条记录时Datatable,我将该记录设置Time为 180 秒。在这里,我想通过明智的记录来自动减少该时间。请参阅下面的示例以了解。

在数据表中我有:

ID     Tag       Time

1     TS009      180 Seconds  

15 秒后的这条记录:

ID     Tag       Time

1     TS009     165 Sec

现在我再添加一行,如下所示:

2     TS010     180 Sec

现在我在 DataTable 中有 2 条记录:

ID     Tag       Time

1    TS009    165 Sec

2    TS010    180 Sec

再次,10 秒后我Datatable有:

1    TS009    155 Sec

2    TS010    170 Sec

请朋友帮我解决这个问题。

4

1 回答 1

0

您可以简单地通过使用Timer

通过使用计时器,我将dataTable每 1 秒减少一次所有数据的时间,因此我们将遍历数据并减少每一个数据。

我的dataTable实施:

DataTable dataTable = new DataTable();
dataTable.Columns.Add("ID");
dataTable.Columns.Add("Tag");
dataTable.Columns.Add("Time");

在构造函数的表单中添加一个计时器:

public Form1()
{
    InitializeComponent();
    System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer();
    timer.Tick += new EventHandler(timer_Tick);
    timer.Interval = 1000;
    timer.Start();
}

最后是计时器事件处理程序:

private void timer_Tick(object sender, EventArgs e)
{
    int count = dataTable.Rows.Count;
    if (count > 0)
    {
        int time;
        for (int i = 0; i < count; i++)
        {
            time = Convert.ToInt16(dataTable.Rows[i][2]);
            if (time > 0)
                dataTable.Rows[i][2] = time - 1;
        }
    }
}

希望能帮助到你 ;)

于 2013-06-20T08:49:32.353 回答