0

我希望有一個尾隨.....在運行時擴展/增長SqlConnection.Open()在SqlConnection.Open()運行時運行寫主機輸出

我不知道如何做到這一點,當我運行命令SqlConnection.Open()直到連接成功,然後我的代碼繼續,輸出停止。

我嘗試了一個while循環,但while內容什麼也沒做,直到實際連接建立或失敗,這可能需要10-15秒。

$waiting = ".", ".", ".", ".", "."; 
Try 
{ 
    #write-host -ForegroundColor GREEN "Connecting to SQL Server: $svr" 
    $SqlConnection = New-Object System.Data.SqlClient.SqlConnection 
    $SqlConnection.ConnectionString = "Server = $svr ;Database = $db; User ID = $uid ;Password = $pwd;" 

    while (!$SqlConnection.State -eq 'Open') 
    { 
     write-host -ForegroundColor GREEN "Connecting to SQL Server: $svr" -NoNewline 
     ForEach ($p in $waiting) { 

      Write-Host -ForegroundColor Cyan "`r$p" -NoNewLine 
      Start-Sleep -Milliseconds 300 
     } 

     $SqlConnection.Open() 
    } 

    $SqlCmd = New-Object System.Data.SqlClient.SqlCommand 
    $SqlCmd.Connection = $Global:SqlConnection 
    $SqlCmd.CommandText = $UsrSqlQuery 
} 
+0

您可以向我們顯示迄今爲止的相關代碼嗎? – user2366842

+0

這就是我目前所處的位置,有一些while和其他while循環 – catalyph

回答

2

您有單線程腳本。一旦你調用.Open方法,在返回之前什麼都不會發生。我認爲多線程是你得到你想要的唯一方法。 以下是PS中的多線程示例: multithreading