【发布时间】:2016-04-18 17:29:03
【问题描述】:
我正在使用 system.data.dataset。
我想遍历每一行并从每一行中创建一个 psobject。属性将是列名。这怎么可能?我想从列名动态创建属性。
【问题讨论】:
-
顺便说一句,PowerShell 适应
DataRow对象并将列公开为属性。
标签: powershell datatable dataset
我正在使用 system.data.dataset。
我想遍历每一行并从每一行中创建一个 psobject。属性将是列名。这怎么可能?我想从列名动态创建属性。
【问题讨论】:
DataRow 对象并将列公开为属性。
标签: powershell datatable dataset
假设您在$DataRow 变量中有DataRow 对象,您可以执行以下操作:
$DataRow.Table.Columns | ForEach-Object {$Properties=[ordered]@{}} `
{$Properties.Add($_.ColumnName, $DataRow[$_])} `
{[PSCustomObject]$Properties}
【讨论】:
$DataRow = Invoke-SqlCmd @OtherParams -query "select col1 from [A_View]"$null -eq $DataRow.Table #True
我发现执行 $datarow.psobject.properties 并根据“rowerror”“rowstate”之类的属性数组检查每个属性以过滤掉垃圾很容易,此时我可以 .name .value。
【讨论】:
$datarow.PSAdapted.PSObject.Properties 无需过滤“rowerror”、“rowstate”等。