1
需要幫助解決這個問題: 我需要從MySQL數據庫中獲取表數據以便在腳本中進一步使用。我使用這個代碼,用於訪問MySQL數據:利用MySQL查詢結果
[void][System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\MySQL\MySQL Connector Net 6.7.4\Assemblies\v2.0\MySql.Data.dll")
$Connection = New-Object MySql.Data.MySqlClient.MySqlConnection
$Connection.ConnectionString = $ConnectionString
$Connection.Open()
$Command = New-Object MySql.Data.MySqlClient.MySqlCommand($Query, $Connection)
$DataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($Command)
$DataSet = New-Object System.Data.DataSet
$RecordCount = $dataAdapter.Fill($dataSet,"data") | Out-Null
$Command.Dispose()
$Table=$DataSet.Tables["data"] | FT -auto
$Connection.Close()
$Table
,它給了我寶貴的一塊垃圾:
TASKID TASKTYPE fistNAME secNAME STATUS ------ -------- -------- ------- ------ 1111 1 Dep1 0 2222 2 User321 Dep1 0
,但是當我嘗試,例如將結果導出爲CSV:
Export-Csv -Path "c:\test.csv" -InputObject $Table
我得到的是:
#TYPE System.Object[] "Count","Length","LongLength","Rank","SyncRoot","IsReadOnly","IsFixedSize","IsSynchronized" "6","6","6","1","System.Object[]","False","True","False"
所以當我嘗試在變量來分析數據是這樣的:
Write-Host $Table
foreach ($Task in $Table) {
Write-Host $Task.TASKID
}
我得到的是:
Microsoft.PowerShell.Commands.Internal.Format.FormatStartData Microsoft.PowerShell.Commands.Internal.Format.GroupStartData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.GroupEndData Microsoft.PowerShell.Commands.Internal.Format.FormatEndData
誰能幫我resove這個問題?
當你寫'主機$任務',然後將其管道到'格式列表'和選擇所有屬性會發生什麼? ('write-host $ Task | fl -Property *')這會顯示你可以訪問的所有屬性。你也可以嘗試'write-host $ Task.TASKID.Value',它可以提取'TASKID'屬性的值。 – Richard
以及'write-host $ Task | fl -Property *'它給了我「Microsoft.PowerShell.Commands.Internal.Format.FormatEndData」和'write-host $ Task.TASKID.Value'另一個空行 – Andrey
這是你創建變量'$ Table'的方式那就是問題所在。你有沒有嘗試下面的建議答案? – Richard