Powershell Write-Host 仅显示数据表名称而不是数据

Powershell Write-Host showing only dataTable name instead of data

我正在尝试编写一个 Powershell 脚本来执行 .sql 文件

中包含的 SQL 查询
Function RunSQLScript ($connstring, $filePath)
{
    $query = get-content  $filePath;

    $DTSet = New-Object System.Data.DataSet;
    $Conn=New-Object System.Data.SQLClient.SQLConnection $connstring;
    $Conn.Open();
    try
    {
        $DataCmd = New-Object System.Data.SqlClient.SqlCommand;
        $MyQuery = $query;
        $DataCmd.CommandText = $MyQuery;
        $DataCmd.Connection = $Conn;
        $DAadapter = New-Object System.Data.SqlClient.SqlDataAdapter;
        $DAadapter.SelectCommand  = $DataCmd;
        $DAadapter.Fill($DTSet) | Out-Null;
        for ($i = 0; $i -lt $DTSet.Tables.Count; $i++) {
           Write-Host $DTSet.Tables[$i];
        }
    }
    finally
    {
        $Conn.Close();
        $Conn.Dispose();
    }

    return $DTSet;
}

内部 Write-Host 显示的是 DataTable 名称而不是 DataRow。

如果我在 Powershell 控制台中手动创建一个带有 DataTable 的 DataSet,Write-Host 会向我显示 DataTable 行中的数据,所以我无法真正弄清楚为什么它在之前的脚本中没有这样做。

你能给我一些关于如何显示数据table中包含的数据而不是table名称的线索吗?

谢谢

这段代码对我很有帮助,如果有人需要的话,把它贴在这里。

    for ($i = 0; $i -lt $DTSet.Tables.Count; $i++) {
        $DTSet.Tables[$i] | format-table  | out-host
    }

这会在屏幕上产生类似 table 的输出。