3

Sharepoint のリストにアイテムを追加しようとしています。現在、CAML経由でアイテムを追加しようとしています

リストを読み取ってリストを照会することはできますが、リストに追加することはできません。私が見たすべての例はリストを更新します。アイテムを追加するプロセスはかなり似ているはずです。

これが私が現在テストしている方法です。SPLists は、http:///_vti_bin/lists.asmx への Web リファレンスです。

    void Test(){
        var listService = new SPLists.Lists();

        string strBatch ="<Method ID='1' Cmd='New'><Field Name='Title'>Test</Field></Method>";

        XmlDocument xmlDoc = new System.Xml.XmlDocument();

        System.Xml.XmlElement elBatch = xmlDoc.CreateElement("Batch");

        elBatch.SetAttribute("OnError", "Continue");
        elBatch.SetAttribute("ListVersion", "1");

        elBatch.InnerXml = strBatch;
        XmlNode ndReturn = listService.UpdateListItems("TestList",elBatch);

        Console.Write(ndReturn.OuterXml); 
        Console.WriteLine("");

}

誰かがすでにSOで同様の/同じ質問をしていますが、回答されていません

編集
これは私が得るエラーです

<Results xmlns="http://schemas.microsoft.com/sharepoint/soap/">
<Result ID="1,New">
<ErrorCode>0x81020026</ErrorCode>
<ErrorText>The list that is referenced here no longer exists.</ErrorText>
</Result>
</Results>

私がセットアップしたとき、Web 参照は正しいサイトを指し示し、sharepoint のリストを調べて、そこにあることを確認しました。

4

2 に答える 2

2

おそらく、strBatch に少し追加する必要があるようです (この記事を参考にしてください)。<Field Name='ID'>New</Field>

つまり、次のようなものになります。

string strBatch ="<Method ID='1' Cmd='New'><Field Name='ID'>New</Field><Field Name='Title'>Test</Field></Method>";

また、リストに必須フィールドがある場合は、おそらくそれらも指定する必要があります。

于 2010-10-01T18:55:22.810 に答える
0

これが私の問題を解決したと私が見つけたものです。

Visual StudioでWeb参照を設定するときに、参照としてhttp://sharepointSite/subweb1/subweb2/_vit_bin/lists.asmxを指定しました。

しかし、私が戻って今日チェックしたとき、それはhttp://sharepointSite/_vit_bin/lists.asmxを指していた。app.configファイルで手動でhttp://sharepointSite/subweb1/subweb2/_vit_bin/lists.asmxに戻すと、すべての違いが生じました。

@Kit+1私もあなたの提案に追加しました。あなたの提案と私がウェブリファレンスについて発見したことで、それは初めて機能しました。

結局、それを機能させるために、1つのフィールド(タイトル)だけでサブWebを作成することになりました。

于 2010-10-03T23:27:24.880 に答える