我正在尝试编写一个执行 .sql 文件中包含的 SQL 查询的 Powershell 脚本
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。
如果我在 Powershell 控制台中手动创建一个带有 DataTable 的 DataSet,Write-Host 会向我显示 DataTable 行中的数据,所以我无法真正弄清楚为什么它在前面的脚本中没有这样做。
你能给我一些关于如何显示数据表中包含的数据而不是表名的线索吗?
谢谢