2

SharePointリストを更新するためにWebサービスを使用しました。ネットワーク資格情報を使用してリモート サーバーにアクセスしています。

mylist.Credentials = new NetworkCredential(_username, _password, _domain);

ここに私のinnerXmlコードがあります:

       StringBuilder innerXml = new StringBuilder();
              innerXml.AppendFormat("<Method ID='1' Cmd='Update'>" +
              "<Field Name='ID'>" + id + "</Field>" +
              "<Field Name='Title'>" + title + "</Field>" +
              "<Field Name='CostCTRShortText'>" + CostCTRShortText + "</Field>" +
              "<Field Name='ActTyp'>" + ActTyp + "</Field>" +
              "<Field Name='Employee'>" + Employee + "</Field>" +
              "<Field Name='Price'>" + Price + "</Field>" +
              "<Field Name='ITECCategory'>" + ITECCategory + "</Field>" +
              "<Field Name='ServicePrice'>" + ServicePrice + "</Field>"
              );

        innerXml.AppendLine("</Method>");

残念ながら、更新時にエラーが発生します。

<Result ID="1,Update" xmlns="http://schemas.microsoft.com/sharepoint/soap/"><ErrorCode>0x81020016</ErrorCode><ErrorText>Item does not exist

The page you selected contains an item that does not exist.  It may have been deleted by another user.</ErrorText></Result>

これは、リモート サーバーでリスト アイテムを更新しようとしたときにのみ発生します。同じコードが機能し、期待どおりにローカル サイトのリスト アイテムを更新します。

私を助けてください。

4

1 に答える 1

0

問題が見つかりました。ここIDで重要な役割を果たします。IDフィールドが正しい値を取得していることを確認してください。私の場合、私のローカル リストはフォーム ID =1 で始まりますが、運用サーバー リストには ID=1 の行がありません。

この ID 列は、SharePoint リストから簡単に表示できます。そして値を確認します。

于 2012-10-11T06:10:04.893 に答える