将 SQL 导出到 CSV 时出错 - 管道
Posted
技术标签:
【中文标题】将 SQL 导出到 CSV 时出错 - 管道【英文标题】:Error Exporting SQL to CSV - Pipeline 【发布时间】:2017-07-20 18:42:24 【问题描述】:对编码/Powershell 非常陌生,但我非常接近我的项目。尝试自动连接到我的 SQL DB 并导出到 CSV(或 excel 如果可能)。我已成功连接到数据库并获得准确的信息,但似乎无法将数据导出到文件中。这是我的代码:
$DBServer = "E2\E2SQL"
$databasename = "****"
$UID = "sa"
$pass = "*****"
$Connection = new-object system.data.sqlclient.sqlconnection #Set new object to connect to sql database
$Connection.ConnectionString ="server=$DBServer;database=$databasename;User Id=$UID;password=$pass;trusted_connection=False" # Connectiongstring setting for local machine database with window authentication
Write-host "Connection Information:" -foregroundcolor yellow -backgroundcolor black
$Connection #List connection information
### Connect to Database and Run Query
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand #setting object to use sql commands
$SqlQuery = @"
SELECT JobNo FROM Online
"@
$Connection.open()
Write-host "Connection to database successful." -foregroundcolor green -backgroundcolor black
$SqlCmd.CommandText = $SqlQuery
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$SqlCmd.Connection = $Connection
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$Connection.Close()
$DataSet.Tables[0]
export-csv -path "C:\Users\BOB\Desktop\TEST.csv" -NoTypeInformation
当我运行代码时,会显示正确的信息!但是,我收到一个弹出窗口,上面写着“命令管道位置 1 处的 cmdlet Export-Csv - 为以下参数提供值:InputObject”我一直在尝试解决这个问题,但没有成功。知道这个错误是什么或如何解决它吗?如何获取数据以写入我的 CSV(或如果可能的话 excel)? 谢谢大家
【问题讨论】:
【参考方案1】:一种更短的方法:
$output ="C:\Users\BOB\Desktop\TEST.csv"
$DBServer = "E2\E2SQL"
$databasename = "****"
$UID = "sa"
$pass = "*****"
$SqlQuery = @"SELECT JobNo FROM Online"@
invoke-sqlCmd -serverinstance @DBServer -database $databasename
-Username $UID -Password $pass -Query $SqlQuery | Export-Csv $output
【讨论】:
以上是关于将 SQL 导出到 CSV 时出错 - 管道的主要内容,如果未能解决你的问题,请参考以下文章