【问题标题】:Powershell Write-Host showing only dataTable name instead of dataPowershell Write-Host 仅显示数据表名称而不是数据
【发布时间】:2015-11-21 20:26:55
【问题描述】:

我正在尝试编写一个 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;
}

内部写入主机显示的是 DataTable 名称而不是 DataRows。

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

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

谢谢

【问题讨论】:

    标签: sql-server powershell datatable write-host


    【解决方案1】:

    这段代码对我很有帮助,如果有人需要,可以在这里发布。

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

    这会在屏幕上产生类似表格的漂亮输出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多