0

我正在连接到 LDAP,我只得到用户类型的类对象,我只想获得专有名称,当我不进行任何排序时,(我评论排序行)结果很好,数量用户是 13 岁。我可以将它们全部打印出来,但它们没有按升序排列,所以我根据 distinctName 进行了排序,当我将这些行添加到代码中时,它给了我一个空的 searchResults 集合。

我不知道为什么,为什么当我进行排序时,数据会消失,而当我停止排序时,数据就在那里。排序有什么问题???

DirectoryEntry entry = new DirectoryEntry(_path, username, 
DirectorySearcher mySearcher = new DirectorySearcher(entry);
mySearcher.Filter = ("(objectClass=user)");
SortOption option = new SortOption("distinguishedName", System.DirectoryServices.SortDirection.Ascending);
mySearcher.Sort = option;
DataSet ds = new DataSet();
DataTable dtUsers = new DataTable("Users");
dtUsers.Columns.Add("distinguishedName");
SearchResultCollection ss = mySearcher.FindAll();
SearchResult a = ss[0];
4

2 回答 2

0

在 DataView 中进行如下排序:

DataTable dtUsers = new DataTable("Users");
dtUsers.Columns.Add("distinguishedName");
DataView view = dtUsers.DefaultView;
view.Sort = "distinguishedName";
于 2012-05-02T07:28:18.820 回答
0

FWIW,我的建议通常是不对服务器端进行排序。客户端可以轻松地对 DC 进行排序并保持排序负载。在某些情况下,您确实需要服务器进行排序,但如果您可以避免它,我会的。您的管理员会感谢您的。

于 2012-06-27T20:32:57.773 回答