mysql - 将SQL查询结果存储在变量中

标签 mysql powershell powershell-4.0

我不明白为什么将查询结果存储在变量中如此困难。

当我运行此脚本而不尝试将结果存储在变量中时,我得到了正确的结果。但是,如果我尝试将相同的值存储在变量中,则该变量的值是 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]
}

最佳答案

您需要从行中获取该项目。
$max_slide_count = $data_set.Tables[0].Rows[0].Item("MAX(SLIDE_ID)")

关于mysql - 将SQL查询结果存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42119005/

相关文章:

powershell - 带有参数的PowerShell函数?

sql-server-2012 - PowerShell 4 安装后 Invoke-Sqlcmd 不起作用

cpanel - mysqldump后的sql文件在哪里可以找到

Powershell 返回包含特定文件但不完全递归的目录

mysql - 帮助 MySQL 子查询

powershell - Get-Random 和 random 有什么区别

.net - 为什么我无法返回 System.Collections.Specialized.NameValueCollection 类型的值?

automation - Powershell从网站ie.document下载文件方法

mysql - 从其他表的表跳过记录中提取记录

php - Doctrine 查询生成器 mysql 函数