我正在学习 Powershell 脚本来自动执行一些 SQL 任务。我使用 DataAdapter 填充数据集,并从控制台得到了正确的数字,表明已选择 14 列。但是,我坚持使用循环从数据集中打印出表的特定列。
Update:
1) TheMadTechnician 解决了我的问题 - SQL 查询错误。
2)我在这里更新了更正后的代码。另外,我添加了 Method3 来帮助其他人打印格式更好的表格。
My Code:
# $ConnectionString is the server and my account info.
$SqlQuery = $("SELECT * FROM MyTable")
$Connection = New-Object System.Data.SQLClient.SQLConnection($ConnectionString)
$SqlCommand = New-Object System.Data.SQLClient.SQLCommand($SqlQuery, $Connection)
$Connection.Open()
$DataAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$DataAdapter.SelectCommand = $SqlCommand
$Dataset = New-Object System.Data.Dataset
$DataAdapter.Fill($Dataset)
$Connection.Close()
# Method1:
foreach ($Row in $Dataset.Tables[0].Rows) {
Write-Host "col_1:$($Row.Id) col_2:$($Row.CreatedDateTime) col_3:$($Row.DeactivatedDateTime)"
}
# Method2:
foreach ($Row in $Dataset.Tables[0].Rows) {
Write-Host "col_1:$($Row[0]) col_2:$($Row[1]) col_3:$($Row[2])"
}
# Method3:
for ($i = 0; $i -lt $Dataset.Tables.Count; $i++) {
$Dataset.Tables[$i] | format-table | out-host
}
将您的查询更改为SELECT * FROM MyTable
它应该有效。现在它只显示 CreatedDateTime 因为这是您的查询返回的唯一内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)