1
在PowerShell中,我試圖觸發一個電子郵件發送,只有當有一個SQL查詢的結果。電子郵件功能和數據庫連接工作正常,但基於SQL結果的「if then」語句不起作用 - 我不認爲$ result = [bool]是有效的。Powershell - 如果SQL查詢返回一個結果,然後運行功能
如果從SQL語句返回任何記錄,並且電子郵件將包含SQL結果,最終結果將是僅發送的電子郵件。
這是我到目前爲止有:
$result = [bool]("
SELECT *
FROM table
WHERE condition")
If ($result -eq $true) {
function Invoke-SQL ($dataset) {
$connectionString = "server=servername;uid=valuehere;pwd=passwordhere;database=dbnamehere;"
$sqlCommand = "
SELECT *
FROM table
WHERE condition"
"
$connection = new-object system.data.SqlClient.SQLConnection($connectionString)
$command = new-object system.data.sqlclient.sqlcommand($sqlCommand,$connection)
$connection.Open()
$adapter = New-Object System.Data.sqlclient.sqlDataAdapter $command
$adapter.Fill($dataSet) #| Out-Null
$connection.Close()
}
function Invoke-Email ($dataset) {
foreach ($Row in $dataset.Tables[0].Rows)
{
write-host "value is : $($Row[0])"
}
$From = "email"
$To = "email"
$Subject = "subject here"
$Body = echo 'email body here' $dataset.tables[ 0 ] | Out-String
$SMTPServer = "server here"
Send-MailMessage -From $From -to $To -Subject $Subject -Body $Body -SmtpServer $SMTPServer
#-Port $Port
}
$dataset = New-Object System.Data.DataSet
Invoke-SQL $dataset
$dataset.Tables
Invoke-Email $dataset
$result
請注意,這隻適用於返回行的語句。 – emanresu