【发布时间】: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";
}
*/
}
【问题讨论】:
-
您没有对 DataTable 进行排序。您对数据视图进行排序msdn.microsoft.com/en-us/library/…