C# 尝试使用引用Microsoft.Sharepoint.Client添加新列表项时出现的问题

C# 尝试使用引用Microsoft.Sharepoint.Client添加新列表项时出现的问题,c#,winforms,sharepoint,sharepoint-2013,C#,Winforms,Sharepoint,Sharepoint 2013,我正试图使用winforms C#应用程序将新项目添加到Sharepoint列表中,但我遇到了一个错误,好像该应用程序没有找到列表字段一样 我的代码: using SPC = Microsoft.SharePoint.Client; (……) 在最后一行代码中出现错误: 列“字段1”不存在。它可能已被其他用户删除 用户/站点/项目X/列表/列表Y 有小费吗 注:“列表Y”中有一个名为“字段1”的字段 谢谢 我找到了问题原因:我使用了字段的“显示名称”,但我需要使用“内部名称” 因此,我在列表设

我正试图使用winforms C#应用程序将新项目添加到Sharepoint列表中,但我遇到了一个错误,好像该应用程序没有找到列表字段一样

我的代码:

using SPC = Microsoft.SharePoint.Client;
(……)

在最后一行代码中出现错误:

列“字段1”不存在。它可能已被其他用户删除 用户/站点/项目X/列表/列表Y

有小费吗

注:“列表Y”中有一个名为“字段1”的字段


谢谢

我找到了问题原因:我使用了字段的“显示名称”,但我需要使用“内部名称”

因此,我在列表设置中检查了字段的内部名称,然后在代码的这一部分使用:

oListItem["field 1"] = "a";
oListItem["field 2"] = "b";
oListItem["user"] = "someone.surname";
oListItem["date 1"] = "01/01/2015";
oListItem["field 3"] = "99";
例如,字段“字段1”的内部名称为“f1”;“字段2”的内部名称为“f2”;字段“date 1”的内部名称为“date_1”;等等

因此,当我将显示名称更改为内部名称时(在“oListItem[“…”]),不再出现错误消息“Column'field 1'not Existence”,因为现在已找到这些字段

我必须做的另一个改变是在这一点上:

oListItem["user"] = "someone.surname";
这种方法不起作用(直接设置用户名)。我必须使用一个变量来获取当前用户。这种方法:

oListItem["user"] = oUser.Id.ToString();
其中“oUser”变量为:

SPC.User oUser = oWeb.CurrentUser;
clientContext.Load(oUser);
clientContext.ExecuteQuery();

就这样!现在一切都好了:)谢谢大家!

也许你应该为你的列表做准备,以确保“字段1”出现在oList对象中。谢谢@wooters,但我已经这样做了,使用下面的行代码,所有字段名都可以:
SPC.FieldCollection FLDlist=oList.Fields;clientContext.Load(FLDlist);clientContext.ExecuteQuery();string mmmsg=string.Empty;foreach(FLDlist中的SPC.Field fld){mmmsg+=fld.Title+Environment.NewLine;}MessageBox.Show(mmmsg);
看看这个,如果你还没有。抱歉@wooters,但我不明白这一点:“sharepoint询问你关于‘信任’的问题,然后你必须选择你想要使用的列表“。我看不到任何“询问”的提示或来自sharepoint的消息。是的,老实说,我也不完全理解。它看起来与您正在处理的错误直接相关。
SPC.User oUser = oWeb.CurrentUser;
clientContext.Load(oUser);
clientContext.ExecuteQuery();