나는 가지고있는 목록을 기반으로 Powershell을 사용하여 .NET DataTable에서 소수의 행을 제거하려고합니다.조건부로 PowerShell에서 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()
}
내가 미쳤다고 할 수는 있지만이 나를 위해 내가 그것을 시도 처음 일을 맹세. 이 System.Data.DataRow은 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
:하지만 지금 나는 다음과 같은 오류가 발생하고있다. 나는 이것이 시도가 아님을 안다. 중단 점을 배치하고 $dt | gm
을 실행하면 다음과 같은 결과를 얻습니다.
PS C:\WINDOWS\system32>> $dt | gm
TypeName: System.Data.DataRow
'System.Data.DataRow []'에는 삭제 방법이 없지만 미묘하지만 중요한 차이점이 있습니다.이 시점에서'DataRow' 배열을 다루고 있습니다. 각 객체의 delete 메소드에 액세스하려면 컬렉션을 반복해야합니다. – arco444