Powershell Write-Host показывает только имя dataTable вместо данных

Я пытаюсь написать сценарий 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 вместо DataRows.

Если я вручную создаю DataSet с DataTable в Powershell Console, Write-Host показывает мне данные в строках DataTable, поэтому я не могу понять, почему это не происходит в предыдущем сценарии.

Можете ли вы дать мне несколько подсказок о том, как показывать данные, содержащиеся в таблицах данных, вместо имен таблиц?

Спасибо

1 ответ

Решение

Этот кусок кода был очень полезен для меня, разместив его здесь, если кому-то это нужно.

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

Это дает хороший вывод на экран в виде таблицы.

Другие вопросы по тегам