SQLServer 连接与 PowerShell 问题设置连接超时属性



我正在使用PowerShell连接到SQLServer数据库。我的脚本运行SQL代码工作正常,但定期无法生成所需的输出,然后再次运行它工作正常。

$mySQLQuery = "SQL Query Here"
$myDataSet = New-Object System.Data.DataSet "myDataResultSet"
    $sqlConn = New-Object System.Data.SqlClient.SqlConnection("Data Source=myDataSource;Initial Catalog=myDBServer;Integrated Security = False; User ID = UserName; Password =PassWord;")
    $SqlConn.ConnectionTimeout= 0
    $adapter = New-Object System.Data.SqlClient.SqlDataAdapter($mySQLQuery, $sqlConn)
$adapter.Fill($myDataSet)
$SqlConn.Close()

同时,搜索和阅读我发现它与连接超时有关。我尝试将sql连接超时从默认值设置为0 30,但是在运行scirpt时,我收到以下错误:

$sqlConn.ConnectionTimeout = 0  is read-only property.

知道我在这里做错了什么吗?

谢谢。

就个人而言,我设置了命令超时,而不是连接...

$connection = New-Object System.Data.SqlClient.SqlConnection
$connection.ConnectionString = "<yourconnectionstring>"
$command = $connection.CreateCommand()
$command.CommandText = "<yoursql>"
$command.CommandTimeout = 0
$results = $command.ExecuteReader()
$table = New-Object System.Data.DataTable
$table.Load($results)
$connection.Dispose()
解决此问题

的最简单方法是将;Connection Timeout=60添加到连接字符串中。

$sqlConn = New-Object System.Data.SqlClient.SqlConnection('Connection Timeout=60')
$sqlConn.ConnectionTimeout
60

你可能不希望它设置为 0,如果你需要一个高得离谱的值,请使用 300 或其他东西。

最新更新