按特定列而不是按主键对DataTable排序

本文关键字:DataTable 排序 | 更新日期: 2023-09-27 18:05:01

我对c#很陌生,我正试图将我的Access数据库链接到程序并操纵它,然后将其写入文本文件。

然而,我的数据目前是基于ID(这是主键)排序的。我想根据姓氏对其进行排序,然后进行操作,因为当我使用"foreach(DataRow drr in dra)"时,将按id的顺序检索行。

(半径标注->数据行)

我想访问行后,他们已经排序,但我不知道如何做到这一点。以下是我的代码:

OleDbCommand myAccessCommand = new OleDbCommand(strAccessSelect, myAccessConn11);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(myAccessCommand);
myAccessConn11.Open();
myDataAdapter.Fill(myDataSet, "Personal_Data");
myAccessConn11.Close();
DataTableCollection dta = myDataSet.Tables;
DataRowCollection dra = myDataSet.Tables["Personal_Data"].Rows;
foreach (DataRow drr in dra)
{
    *Manipulation*
}

我尝试使用myDataSet.Tables["Personal_Data"].DefaultView.Sort = "LastName DESC";,但它不起作用。

是否有其他方法可以在访问表中的行之前对它们进行排序?

提前感谢!

按特定列而不是按主键对DataTable排序

你可以在你的"strAccessSelect" SQL查询中对行进行排序,例如:

SELECT Id, FirstName, LastName from MyTable ORDER BY LastName ASC;