【发布时间】:2015-07-27 14:13:06
【问题描述】:
我是 C# 的新手,我正在尝试将我的 Access 数据库链接到程序并对其进行操作,然后将其写入文本文件。
但是,我的数据目前是根据 ID(即主键)排序的。 我想根据姓氏对其进行排序,然后进行操作,因为当我使用“foreach(DataRow drr in dra)”时,将按 ID 的顺序检索行。
[dra->数据行]
我想在排序后访问这些行,但我不知道该怎么做。以下是我的代码。
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";,但没有成功。
有没有其他方法可以在访问表中的行之前对其进行排序?
提前致谢!
【问题讨论】:
-
strAccessSelect是访问数据的 sql 吗?在那里订购。 -
应用默认视图排序后,您需要调用 .ToTable() 以返回已应用 DefaultView 的结果。
-
我之前尝试过下面发布的答案,但我遇到了一个例外,因为我的列被标记为“姓氏”。现在我删除了空间来试一试,它确实有效。这确实是一个简单的解决方案,但我不确定如何处理 String strAccessSelect 上的异常。 @Ric-是的,这就是我使用的 sql 查询。这是一个选择语句。
-
@Ahmed- 是的,我也尝试过这样做,但它没有将排序表存储回来。当我尝试访问 DataTable 时,它仍然给了我未排序的行
标签: c# database sorting datatable dataset