Sharepoint 字段尚未在 C# 中初始化

2024-02-03

我正在编写一个代码,它将遍历共享点列表中的每个列表项并查找空字段。如果发现空字段,则会通过电子邮件通知负责该列表项的人员。

我在线路中遇到错误val = oListItem[field.Title];其中指出

属性或字段尚未初始化。尚未请求或请求尚未执行。可能需要明确要求。

在我看来,我已经初始化了该行之前的所有内容。

static void Main()
{
    ClientContext context    = new ClientContext("https://****");
    context.Credentials      = new NetworkCredential("****", "****");
    List oList               = context.Web.Lists.GetByTitle("TestBI");
    FieldCollection fieldcol = oList.Fields;

    context.Load(oList);
    context.Load(fieldcol);
    context.ExecuteQuery();

    ListItem oListItem = oList.GetItemById(1);
    object val = null;

    for (int i = 1; i <= 4; i++)
    {
        oListItem = oList.GetItemById(i);
        foreach (Field field in fieldcol)
        {
            val = oListItem[field.Title];
            if(val == null)
            {
                //Send e-mail
            }
        }
    }
    context.ExecuteQuery();
}

欢迎来到 SharePoint CSOM 地狱。

您确实加载了 List 和 FieldCollection,但还必须加载每个 Field。事实上,您必须加载要从中获取属性的每个 SharePoint 对象。

for (int i = 1; i <= 4; i++)
{
    oListItem = oList.GetItemById(i);
    
    foreach (Field field in fieldcol)
    {
        context.Load(field);
        context.ExecuteQuery();
        val = oListItem[field.Title];
        if(val == null)
        {
            //Send e-mail
        }
    }
}

Edit:8年后,我已经很长一段时间没有使用SharePoint了,但现在我看到这个答案,我认为最好不要打电话context.ExecuteQuery()在循环。您可能应该使用第一个循环.Load每个感兴趣的领域,然后致电.ExecuteQuery,最后再做一个循环来处理新加载的字段。

当涉及到 Web 请求时,请尝试使用大量的内容,而不是喋喋不休的内容:努力限制您发出的请求数量(当然,只要有意义)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sharepoint 字段尚未在 C# 中初始化 的相关文章

随机推荐

  • fread() c 中的结构

    对于我的作业 我需要使用 fread fwrite 我写 include
  • 将 JavaScript 转换为 Groovy/Java

    我有一些 javascript 代码 Postman 需要转换以便在另一个 API 测试工具 Katalon 中使用 我在更新具有时区差异的日期时遇到错误 尝试使用 TZ 差异更新预期日期时会发生错误 原始 JavaScript Postm
  • 捕获异步 lambda 异常

    我正在 Windows 8 使用 C 上工作 并且在使用时async关键字有一种情况我似乎无法很好地处理异常 该场景涉及启动一个asynclambda 将其发布到 UI 线程上运行 执行 lambda 代码期间发生的异常会在调用线程上重新引
  • 使用 Gradle 自定义 PMD 规则

    我想在使用 gradle 构建的企业项目中使用 gradle PMD 插件 我有一个pmd rules xml文件已经可以工作 但我无法添加自己的java规则 我得到一个类未找到异常 我按照其网站上的教程进行操作 我必须将自己的规则放在哪里
  • for 循环中的 Swift 闭包

    目前我有在循环内执行闭包的代码 我想知道所有闭包何时完成执行 目前 我正在使用一个计数器 并在关闭完成时递增它 然后将其与要执行的次数进行比较 代码如下 var count 0 var noOfTimes 10 for i in 0
  • 鼠标悬停和鼠标悬停有什么区别?

    在flex中 鼠标悬停和鼠标悬停有什么区别 它首先发生鼠标悬停 然后鼠标悬停 然后鼠标移出 然后推出 这些活动什么时候最合适 来自AS3文档 http help adobe com en US FlashPlatform reference
  • 当清单中存在 `android:supportsRtl="false"` 时,如何在运行时更改 ConstraintLayout 的布局方向?

    背景 我的任务是开发一个应用程序android supportsRtl false 在其清单中 不知道为什么要这样设置 但似乎在某些地方用户可以选择方向 此外 在某些情况下它是浮动的 使用系统警报窗口权限 问题 我想要一些 Constrai
  • Android Studio 输出文本始终为“Hello from C++”

    我面临这个奇怪的问题 我创建了一个textview in activity main xml并将文本设置为 android text Oh my god But 无论我输入什么文本 应用程序屏幕中的输出都是 来自 C 的你好 In fact
  • 如何在 Visual Studio 中复制错误消息

    我刚开始使用 C 和 VS 如何复制我的错误消息 在下图中 我想复制 System Net HttpWebRequest 在菜单栏中选择 查看 并启用 错误列表 默认情况下 屏幕底部会弹出包含所有错误的错误列表 并且可以复制消息
  • R6010 abort() 已被调用

    我从这里读到了有关 substr 的内容 http www cplusplus com reference string string substr http www cplusplus com reference string strin
  • 如何让 div 元素垂直固定?

    我想要垂直但不水平固定的 div 元素 目前 我正在使用 jQuery 来更新位置top每次发生滚动时 但我不希望它看到移动 我希望它能固定不动 有没有办法做到这一点 div A div B 向下滚动 div A div B
  • 节点静态示例

    我一直在用头撞墙试图找出这段代码出了什么问题 我直接从node static github存储库示例中复制了它 但它似乎不起作用 我所做的唯一修改是公共文件的路径 以前是 public 在我的公共文件夹中 我有一个index html 但是
  • VSTS - 从发布视图中取消升级软件包版本

    我们的项目当前使用 VSTS Visual Studio Team Services 包在项目之间共享包 我们想采用发布视图 https learn microsoft com en us vsts package feeds views
  • 如何包含“resources”文件夹中的js文件(Laravel 5.5)

    我使用以下代码来包含我的 js 文件 Meta addJs admin js resources assets admin js admin app js 该文件存在 但在控制台中我看到状态 404 如果我将文件移至 公共 文件夹 一切正常
  • 升级 Xampp 以运行 php 7

    在阅读了几个关于如何将 xampp 升级到较新版本的 php 的问题后 我开始将我的版本升级到版本 7 因为我想学习 严格类型提示 我从下载了 php 7官方网站 http windows php net download 我将此下载文件夹
  • CVS:列出标签之间添加/删除的所有文件

    有没有办法列出在两个选定标签之间添加 删除到存储库的所有文件 我尝试了 cvs 历史记录 但它只显示历史记录 因为特定标签最后添加到历史文件中 命令行解决方案会更好 您可以使用cvs rdiff s r
  • 解决粘性问题的方法

    当一个软件卡住 对用户输入没有响应并且不更新其显示时 如何准确确定它正在做什么 我尝试过 oprofile 它记录了正在执行的函数 但它没有给我足够的线索 它会计算运行期间发生的所有事情 而我只需要查看样本程序卡住时发生的情况 问题可能涉及
  • 多个 SSL 域连接到一个 Azure 云服务站点

    我们有一个在 Windows Azure 云服务上运行的 Web 应用程序 地址为ourapp cloudapp net 我们创建了一条 CName 记录my ourapp com指向此云服务 该域受 SSL 保护 我们现在需要允许不同的域
  • 如何在 Inno Setup 中安装之前更改 defaultdirname 参数?

    我想更改 ssInstall 部分中的 defaultdirname 参数 我怎样才能做到这一点 有没有设置 Setup 参数的功能 以下全局对象可用 TMainForm 类型的 MainForm TWizardForm 类型的 Wizar
  • Sharepoint 字段尚未在 C# 中初始化

    我正在编写一个代码 它将遍历共享点列表中的每个列表项并查找空字段 如果发现空字段 则会通过电子邮件通知负责该列表项的人员 我在线路中遇到错误val oListItem field Title 其中指出 属性或字段尚未初始化 尚未请求或请求尚