2

我正在尝试使用以下 c# 代码在 Active Directory 中查找员工:

"Select userPrincipalName, ADsPath, Department, Mail,
 HomeMDB, cn, ssn FROM 
'LDAP://" + DomainName + "'
WHERE objectCategory = 'person' and 
sAMAccountName = '" + UserName.Replace("'", "''") + "'";

当我为姓氏中带有单引号的员工(例如“O'Connor”)运行此命令时,我收到以下错误:

AdsDsoObject' 失败,没有可用的错误消息,结果代码:DB_E_NOTABLE(0x80040E37)。

I also tried Replace("'", "\''"), nothing is working. 

我究竟做错了什么?需要帮忙。

谢谢你!

4

2 回答 2

1

在自己的线路上进行替换。

Username.Replace("'", "\'");

"Select userPrincipalName, ADsPath, Department, Mail, HomeMDB, cn, ssn FROM 
'LDAP://" + DomainName + "' WHERE objectCategory = 'person' and 
sAMAccountName = '" + UserName + "'";
于 2009-02-18T20:31:11.780 回答
0

你试过:

Replace("'", "\''")

并不是:

Replace("'", "\'")

(那里有一个额外的单引号)。

于 2009-01-30T22:20:17.273 回答