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 に答える