1

アカウント フォームの「2 つのオプション」フィールドに基づいて子連絡先を更新しようとしています。「2 つのオプション」フィールドが「はい」に設定されている場合、すべての子連絡先を親アカウントの更新された住所に更新します。次のコードを使用して値を取得しようとしましたが、

bool? updateContactsValue 
  = entity.GetAttributeValue<bool?>("abc_yesNoField");

if (updateContactsValue)
{
  String[] details = new string[7];
  String telephoneNum = String.Empty, ... , country = String.Empty;

  telephoneNum = entity.GetAttributeValue<String>("telephone1");
  details[0] = telephoneNum;
  ...

  UpdateContact(service, entity.Id, details);
}

しかし、選択したオプションが「はい」であっても、住所フィールドが更新されていないことがわかりました。ここで何か不足していますか?

こんにちは、コードを次のように変更しました

bool? updateContactsValue=null; 
updateContactsValue = entity.GetAttributeValue<bool?> ("abc_yesNoField").GetValueOrDefault();

throw new Exception( "My custom Exception"+" "+entity.GetAttributeValue<bool?>("abc_yesNoField").GetValueOrDefault().ToString());  

「はい」を選択した場合でも、システムは「false」をスローします。

4

4 に答える 4

1

エラーはクエリ ステートメントにあります。その中に属性が挿入されていることを確認してください。挿入されていない場合は、常に false の値が返されます。たとえば、次のようになります。

QueryExpression query = new QueryExpression("ntw_abc");
query.ColumnSet = new ColumnSet("ntw_referencenumber", "abc_yesNoField");
于 2014-01-21T12:47:50.707 に答える
1

おそらく、フィールド名を間違って書きました。「updatechildcontacts」ではいけません。カスタム フィールドであるため、new_updatechildcontacts のようにプレフィックスで始まる必要があります。

于 2013-03-28T21:29:00.700 に答える
1

私は今コンピューターの前にいないので、これは腰からのショットにすぎませんが、(何らかの理由で今はわかりません) 値の取得に失敗してboolを取得することはかなり確信しています。ヌルであること。そして、更新の実行は、それがtrueであることによって条件付けられます。

別の方法でフィールドの値を確認する必要があります。

よくわかりませんが、yes/no 要素はboolであり、null 許容の boolではないはずです。このまま行くとどうなる?それはコンパイルされますか?

bool updateContactsValue 
  = entity.GetAttributeValue<bool>("abc_yesNoField");

if (updateContactsValue) { ... }
于 2013-03-28T23:14:49.410 に答える