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

时间:2015-07-27 14:13:06

标签: c# database sorting datatable dataset

我是C#的新手,我正在尝试将我的Access数据库链接到程序并对其进行操作,然后将其写入文本文件。

但是,我的数据目前根据ID(主键)进行排序。 我想根据Last Name对它进行排序,然后进行操作,因为当我使用" foreach(DataRow drr in dra)"按ID的顺序检索行。

[dra-> Data Rows]

我想在排序后访问这些行,但我不知道该怎么做。以下是我的代码。

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";,但它没有用。

在访问表之前,我还有其他方法可以对表中的行进行排序吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

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

  

来自MyTable ORDER BY LastName ASC的SELECT Id,FirstName,LastName;