Powershell 和 SQL 连接字符串错误

问题描述 投票:0回答:1
function GenericSqlQuery($ConnectionString, $SQLQuery) {
    Write-Host $ConnectionString
    $Connection = New-Object System.Data.SQLClient.SQLConnection
    $Connection.ConnectionString = $ConnectionString
    $Connection.Open()
    $Command = New-Object System.Data.SQLClient.SQLCommand
    $Command.Connection = $Connection
    $Command.CommandText = $SQLQuery
    $Reader = $Command.ExecuteReader()
    while ($Reader.Read()) {
         $Reader.GetValue(0)
    }
    $Connection.Close()
}

参见上面的内容,当执行

$Connectionstring
时,
Write-Host
会被替换,但是当执行
$Connection.ConnectionString = $ConnectionString
时,它不会被替换,并且脚本错误如下

异常设置“ConnectionString”:“初始化字符串的格式不符合
规范从索引 64 开始。”
在 C:\Users\Blah\Desktop\Debugger\ABS9_DB_Update.ps1:7 char:5
+ **$Connection.ConnectionString = "$ConnectionString"**
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~
    + 类别信息: 未指定: (:) [], SetValueInitationException
    + FullQualifiedErrorId : 异常设置时

有人知道为什么吗?

尝试了各种组合,但我无法让任何东西发挥作用。下面的人也有同样的问题

$Connection.ConnectionString = "server='$Server';database='$Database';trusted_connection=true;" 

我什至尝试过

$Connection.ConnectionString = "server='"+$Server+"';database='"+$Database+"';trusted_connection=true;" 

$Connection.ConnectionString="server='"+"$Server"+"';database='"+"$Database"+"';trusted_connection=true;"

但是没有一个变量被替换。

powershell connection-string sqlconnection
1个回答
0
投票

我发现,这些值来自 GUI 表单上的文本框,我只需要引用 .Text 属性,例如 $Connection.ConnectionString = "server="+$SQLServer.text+";database="+$ SQLDatabase.text

© www.soinside.com 2019 - 2024. All rights reserved.