【问题标题】:How to sort a datatable in dataset schema如何在数据集模式中对数据表进行排序
【发布时间】:2016-07-05 22:37:36
【问题描述】:

我正在尝试将数据表排序为数据集。 在这个数据集中,我有 2 个有关系的表

表 1 - Aluno(学生)
表 2 - Curso(课程)

表 aluno 有一个主键“CPF”。但我想按 NAME (NOME) 排序,但是排序子不适用于父表 ALUNO by NOME。

结果仍未排序。我不想使用数据视图,因为我必须按 NAME 表学生排序,这个表是数据集模式。

这是我的代码 sn-p:

        if (dtGrdAlunos.HitTest(new Point(e.X, e.Y)).Row == -1 && dtGrdAlunos.DataSource != null)
        {

            if (sSortType == string.Empty && sColumnToSort == string.Empty)
                sSortType = " ASC";
            else if (sColumnToSort == dtTblAluno.Columns[dtGrdAlunos.HitTest(new Point(e.X, e.Y)).Column].ColumnName.ToString())
                sSortType = (sSortType == " DESC" ? " ASC" : " DESC");
            else if (sColumnToSort != dtTblAluno.Columns[dtGrdAlunos.HitTest(new Point(e.X, e.Y)).Column].ColumnName.ToString())
                sSortType = " ASC";

            sColumnToSort = dtTblAluno.Columns[dtGrdAlunos.HitTest(new Point(e.X, e.Y)).Column].ColumnName.ToString();
            rcTxtLeiaute.Text = sColumnToSort + " " + sSortType;

            dtGrdAlunos.DataSource = null;

            dsDataSet.Tables["Aluno"].DefaultView.Sort = sColumnToSort + sSortType;
            dsDataSet.Tables["Aluno"].AcceptChanges();
            dsDataSet.AcceptChanges();

            dtGrdAlunos.DataSource = dsDataSet.Tables["Aluno"];

            /*
            Application.DoEvents();
            for (int j = 0; j < dsDataSet.Tables["Aluno"].Rows.Count; j++)
            {
                rcTxtLeiaute.Text += j.ToString() + " - " + dsDataSet.Tables["Aluno"].Rows[j]["NOME"].ToString() + "\r";
            }
            */
        }

【问题讨论】:

标签: c# .net datatable dataset


【解决方案1】:

您可以通过调用表的 Select 方法直接对数据表的内容进行过滤和排序。此策略允许您仅在运行时进行过滤和排序。如果您想在设计时设置过滤和排序标准,特别是如果您想将控件绑定到过滤或排序的结果,请使用数据视图。有关详细信息,请参阅使用数据视图过滤和排序数据。

For more details on this click here

【讨论】:

  • 实际上,DataTable.Select 不会对表进行排序。您创建按您需要的顺序排序的行子集。这和排序完全不同
猜你喜欢
  • 1970-01-01
  • 2013-03-08
  • 2014-06-01
  • 1970-01-01
  • 2021-09-08
  • 2018-04-01
  • 2014-08-16
  • 2021-07-17
  • 1970-01-01
相关资源
最近更新 更多