我是这个主题的新手,但在我在这里问之前,我经常搜索很多。所以我的问题是,当我在我的应用程序中创建ListItem并设置所需的字段时,一切看起来都很正常。如果我去Sharepoint Online,我可以在列表中看到ListItem和正确的字段。但是,当我单击ListItem时,Fields为空,并且在页面顶部是一个错误,其中显示“对象引用未设置为对象的实例”。我不知道问题是否发生在我的代码中,或者Sharepoint设置是否存在问题?我跟着这里的大部分导游走到了现在。我的代码如下。
SP.List targetList = ctx.Web.Lists.GetByTitle("Documents");
ListItemCreationInformation itemCreateInfo = new ListItemCreationInformation();
ListItem newListItem = targetList.AddItem(itemCreateInfo);
newListItem["Title"] = "Test_title";
newListItem["EAN_x0020_k_x00f3_d"] = "AnotherCodeWhichIsRequired";
newListItem.Update();
string strFilePath = @"PathToMyPDF";
byte[] bytes = System.IO.File.ReadAllBytes(strFilePath);
using (System.IO.MemoryStream mStream = new System.IO.MemoryStream(bytes))
{
SP.AttachmentCreationInformation aci = new SP.AttachmentCreationInformation();
aci.ContentStream = mStream;
aci.FileName = System.IO.Path.GetFileNameWithoutExtension(strFilePath);
newListItem.AttachmentFiles.Add(aci);
newListItem.Update();
ctx.ExecuteQuery();
}
答案 0 :(得分:0)
看起来您正在使用文档库。您使用的代码是用于共享点列表。
要将文件上传到文档库并更新其属性,请按以下步骤修改代码:
string strFilePath = @"PathToMyPDF";
FileCreationInformation newFile = new FileCreationInformation();
newFile.Content = System.IO.File.ReadAllBytes(strFilePath);
newFile.Overwrite = true;
SP.List targetList = ctx.Web.Lists.GetByTitle("Documents");
Microsoft.SharePoint.Client.File uploadFile = targetList.RootFolder.Files.Add(newFile);
ctx.Load(uploadFile);
ctx.ExecuteQuery();
uploadFile.ListItemAllFields["Title"] = "Test_title";
uploadFile.ListItemAllFields["EAN_x0020_k_x00f3_d"] = "AnotherCodeWhichIsRequired";
uploadFile.ListItemAllFields.Update();
ctx.ExecuteQuery();