Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在SharePoint 2007中使用[Today]和字符串字段进行筛选_C#_Sharepoint_Sharepoint 2007 - Fatal编程技术网

C# 在SharePoint 2007中使用[Today]和字符串字段进行筛选

C# 在SharePoint 2007中使用[Today]和字符串字段进行筛选,c#,sharepoint,sharepoint-2007,C#,Sharepoint,Sharepoint 2007,我有一个C#应用程序,它每周将数据从CSV平面文件插入SharePoint列表,其中包含30000多条记录,并且不断增长 管理层只希望在视图中看到90天以下的项目,但日期字段将作为一行文本插入(否则它根本不会上载)。现在,我尝试使用=TEXT(DateField,“yyyyymmdd”)创建一个新的计算列,并将该字段设置为DateTime类型。然后我尝试使用“NewColumn大于[Today]-90”对视图中的新列进行过滤,但结果为零 是否有一种方法可以将我的文本字段转换为可用于像这样过滤的日

我有一个C#应用程序,它每周将数据从CSV平面文件插入SharePoint列表,其中包含30000多条记录,并且不断增长

管理层只希望在视图中看到90天以下的项目,但日期字段将作为一行文本插入(否则它根本不会上载)。现在,我尝试使用=TEXT(DateField,“yyyyymmdd”)创建一个新的计算列,并将该字段设置为DateTime类型。然后我尝试使用“NewColumn大于[Today]-90”对视图中的新列进行过滤,但结果为零


是否有一种方法可以将我的文本字段转换为可用于像这样过滤的日期字段,或者在我上传到SharePoint之前将平面文件字符串转换为日期时间值?

我最终找到了答案

SharePoint不允许我过滤以这种方式转换的字段,因此我必须以正确的格式上载数据。CSV提要给了我一个“yyyyMMdd”格式的字符串,但SharePoint在格式块之间需要连字符,如“yyyy-MM-dd”。 batch元素中的FieldRef节点也需要如下所示:

"<Field Name='Date_x0020_Field' Type='DateTime' Format='DateOnly'>" + date + "</Field>"
“”+日期+“”
我最终转换成了DateTime对象,然后又转换回了string,因为我集成了一些其他已经是DateTime格式的数据,但是您也可以轻松地手动插入连字符


您可以使用
convert.ToDateTime(stringDate)将字符串转换为DateTimedateTimeObject.ToString(“yyyy-MM-dd”)

你说的“否则它根本不会上载”是什么意思?当我在列表中将字段类型设置为日期和时间时,上载函数返回无效的格式错误,即使我尝试从C#插入日期时间对象也是如此。我听说有一些函数可以用来避免这个问题,但它们要求开发环境与SharePoint站点位于同一服务器上,以便引用DLL,这在我的情况下是不可能的。