Rowfilter删除旧数据

时间:2017-06-04 01:30:38

标签: c# .net

我想将数据存储在datatable上并希望对其进行过滤(例如,最后10分钟数据或最后1分钟数据)

然而,下面的代码有效,如果我过滤数据,它会删除旧数据。

例如,假设我的数据网格有最后10分钟的数据,我将其过滤到最后1分钟。当我这样做时,最后9分钟数据删除。

我该如何解决?

public void getTopSQL()
        {
            dtTopSQL.Clear();
            odaTopSQL = new OracleDataAdapter(getTopSQLDetails, oradb);
            odaTopSQL.Fill(dtTopSQL);
             ugTopSQL.DataSource = null;

              for (int i = 0; i < dtTopSQL.Rows.Count; i++)
            {
                bool isDupe = false;
                for (j = 0; j < dtCurTopSQL.Rows.Count; j++)
                {
                    if (dtTopSQL.Rows[i][1].ToString() == dtCurTopSQL.Rows[j][1].ToString())
                    {
                        dtCurTopSQL.Rows[j][2] = int.Parse(dtCurTopSQL.Rows[j][2].ToString()) + int.Parse(dtTopSQL.Rows[i][2].ToString());
                        isDupe = true;
                        break;

                    }
                }

                if (!isDupe)
                {
                    dtCurTopSQL.ImportRow(dtTopSQL.Rows[i]);
                }
            }

            dtCurTopSQL.DefaultView.Sort = "CountAll DESC";

            ultraGrid1.DataSource = dtCurTopSQL;

            // Here, If i use rowfilter, my old data is removing.
            dtCurTopSQL.DefaultView.RowFilter = string.Format("SAMPLE_TIME >= '{0}'", DateTime.Now.AddSeconds(lastxminutes));

            dtCurTopSQL = dtCurTopSQL.DefaultView.ToTable();

            ugTopSQL.DataSource = dtCurTopSQL;
            ugTopSQL.DataBind();
        }

0 个答案:

没有答案