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」を返さない - それは文字列に変換する際の「System.Data.DataRow」 –
があなたに割り当てることによって何を意味するとして、表現されているオブジェクトを返します。変数 ?それは "$ record_count = $ data_adapter.Fill($ data_set、" data ")です。"そのように割り当てる必要はありません。クエリの出力は、すでにデータセット$ data_setに入力されています。 "$ data_set"を読み込もうとすると何のエラーが発生する –
@ MathiasR.Jessenそう、そのオブジェクトの値を取得しようとしましたが、正しく実行してはいけません。 – gregnnylf94