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;"
但是没有一个变量被替换。
我发现,这些值来自 GUI 表单上的文本框,我只需要引用 .Text 属性,例如 $Connection.ConnectionString = "server="+$SQLServer.text+";database="+$ SQLDatabase.text