0
我不明白爲什麼很難將查詢結果存儲在變量中。將SQL查詢結果存儲在變量中
當我運行此腳本而不嘗試將結果存儲在變量中時,我得到正確的結果。但是,如果我嘗試在變量中存儲相同的值,則該變量的值爲System.Data.DataRow
。我試圖將它轉換爲一個字符串(這會使腳本崩潰),$data_set.Tables[0].Rows[0]
和$data_set.Tables[0].Rows[0]["Value"]
,但仍然沒有運氣。打印結果是不夠的,我需要根據查詢結果進行更改。
我想$max_slide_count = 910980
$slide_id_query = "SELECT MAX(SLIDE_ID) FROM INFOTECHSLIDES.SLIDES;"
try {
Write-Host "Creating Database Connection"
#ENABLE MYSQL DRIVER
[System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")
#CREATE MYSQL CONNECTION
$connection = New-Object MySql.Data.MySqlClient.MySqlConnection
$connection.ConnectionString = $connection_string
#OPEN DB CONNECTION
Write-Host "Opening Database Connection"
$connection.Open()
#RUN MYSQL QUERY
$command = New-Object MySql.Data.MySqlClient.MySqlCommand($slide_id_query, $connection)
$data_adapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($command)
$data_set = New-Object System.Data.DataSet
$record_count = $data_adapter.Fill($data_set, "data")
#STORE RESULT
$max_slide_count = $data_set.Tables[0]
$data_set.Tables[0] #RETURNS: MAX(SLIDE_ID) : 910980
Write-Host "Result: $max_slide_count" #RETURNS: System.Data.DataRow
} catch {
Write-Host "Could not execute MySql Query" $Error[0]
}
不,它不返回「System.Data.DataRow」 - 它返回一個對象,當轉換爲字符串時,表示爲s「System.Data.DataRow」 –
你是什麼意思分配給一個變量 ?它是「$ record_count = $ data_adapter.Fill($ data_set,」data「)」你不必這樣分配它。查詢輸出將已經填充到數據集$ data_set中。當你嘗試閱讀「$ data_set」時,你會得到什麼錯誤 –
@ MathiasR.Jessen對,所以我試圖獲取該對象的值,但我不能正確地做到這一點 – gregnnylf94