首页 > 解决方案 > 使用 C# 从 xml 中选择大于日期的日期

问题描述

我在 Powershell 中尝试使用 C# 填充包含两列的电子表格时感到困惑。第一个是“开始”,是我最需要帮助的。我希望它填充大于给定年份的 7 月 31 日的日期,并在开始时作为字符串输入。以下是我正在使用的部分内容,整件事都给了我一个电子表格,但不是我需要的日期。这是我一直在篡改但无济于事的以 $dr = $DS.Tables 开头的行。

$fileyear = "2017";


###Location of default DLLs
$DllsDir = [System.IO.Path]::Combine($PSScriptRoot,"dlls")
Write-Output "Dll Path "+$DllsDir


###Load default DLLs
foreach ($dll in [System.IO.Directory]::GetFiles($DllsDir,"*.dll", 
[System.IO.SearchOption]::AllDirectories))
{
[reflection.assembly]::loadfrom($dll);
}

Write-Output "Dlls loaded";


###declare objects
$DS = New-Object System.Data.DataSet;

$DS.ReadXml($DBPath,[System.Data.XmlReadMode]::Auto);


$dt = New-Object System.Data.DataTable;
$dt.Columns.Add("Start");
$dt.Columns.Add("ULIN");

$dr = $DS.Tables["LearningDelivery"].Select("LearnStartDate > 
(31/07/"+$fileyear+")");

[datetime]$LearnStartDate = $dr["LearnStartDate"]




Write-Output $dt.Rows.Count;

标签: c#xmlpowershellselect

解决方案


我猜日期的格式不正确。格式取决于您的机器配置的区域。

我将使用 ISO 格式构建日期。检查例如这个问题以供参考:DataTable.Select date format question


推荐阅读