【发布时间】:2016-09-20 09:16:53
【问题描述】:
我在从数据表中获取数据时遇到了不同的错误。这是我填充数据表的代码:
$dt = New-Object System.Data.DataTable
$dt.Columns.Add("ServiceName")
$dt.Columns.Add("HostName")
$SQLConnection.Open()
$Reader = $SqlCmd.ExecuteReader()
while ($Reader.Read()) {
$dt.Rows.Add($Reader.GetValue(0), $Reader.GetValue(1))
}
$SqlConnection.Close()
return $dt
上面的代码在一个返回数据表的函数中,当我在调用脚本中访问这个返回的数据表时,我没有得到数据。
获取每一行数据的脚本:
foreach ($Row in $BackupData) {
Write-Host "$Row[0]"
Write-Host "$Row[1]"
}
我得到如下输出:
服务名称[0] 主机名[0] System.Data.DataRow[0] System.Data.DataRow[0] System.Data.DataRow[0] System.Data.DataRow[0]
当我使用"$($Row[0])" 时,我得到另一个错误
无法索引 system.Data.DataColumn 类型的对象
如何获取每一行每一列的数据?
【问题讨论】:
-
$BackupData或$BackupData | Format-Table -AutoSize怎么样? -
foreach ($row in $dt) { write-host $row[0] write-host $row[1] } 如果在填充数据的函数中执行此操作,但确实如此不适用于从该函数返回的相同数据表。
-
您使用的是哪个版本的 SQL?会有
PSSnapin或Module可以让这更容易。
标签: sql powershell datatable