gpt4 book ai didi

.net - 有条件地删除powershell中的DataTable行?

转载 作者:行者123 更新时间:2023-12-03 00:18:16 28 4
gpt4 key购买 nike

我正在尝试根据我拥有的列表使用 Powershell 从 .NET DataTable 中删除一些行。这是我的精简代码:

这是我的数据表声明:

$Global:dt = New-Object System.Data.Datatable
$dt.Columns.Add("Name")
$dt.Columns.Add("AccountID")

我知道我正在正确填充我的数据表。这是我尝试有条件地删除某些内容的代码:
$testname = "John Smith"

foreach ($id in $DeleteIDs)
{
$dt.Select("Name = '" + $testname + "' AND AccountId = '" + $id + "'").Delete()
}

我可能疯了,但我发誓这在我第一次尝试时对我有用。但现在我收到以下错误:
Method invocation failed because [System.Data.DataRow[]] doesn't contain a method named 'Delete'.
At P:\My Documents\Scripts\myLoc\myScript.ps1:152 char:9
+ $dt.Select("Name= '" + $testname+ "' AND AccountId = '" + $id + "' ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound

这表示 System.Data.DataRow 不包含 Delete方法。我知道这不是尝试。当我放置断点并运行 $dt | gm 时我得到以下信息。
 PS C:\WINDOWS\system32>> $dt | gm


TypeName: System.Data.DataRow

最佳答案

有两种方法可以从 DataTable 中删除行:

  • $dataTable.Rows.Remove($row) (或 RemoveAt())方法,删除行 直接
  • $row.Delete() ,这会将行的状态更改为已删除。循环后,您必须调用 dataTable.AcceptChanges()确保这些行被有效删除 .

  • 可以在 here 中找到 Microsoft 的文档来准确解释这一点。 .

    关于.net - 有条件地删除powershell中的DataTable行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27987432/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com