我在PowerShell中编写了这个函数来连接数据库,但是当我连接服务器而不是包含' \'时,我收到一条错误消息。在服务器名称中。有人可以帮忙吗?
错误讯息:
异常通话"打开"用" 0"参数:"建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或未找到 无障碍。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 错误定位 指定的服务器/实例)"
注意:这只发生在我连接到包含" \"的服务器时。在servername中。当我连接到不包含特殊字符的servername时,上面的函数非常有效。
function ExecuteSqlQuery ($Server, $Database, $SQLDBUser, $SQLDBPwd, $SQLQuery)
{
$Datatable = New-Object System.Data.DataTable
$Connection = New-Object System.Data.SQLClient.SQLConnection
$connectionStr =
"server='$Server';database='$Database';trusted_connection=true;"
if($SQLDBUser -ne $null -and $SQLDBPwd -ne $null){
$connectionStr = "server='$Server';database='$Database';User ID='$SQLDBUser';Password='$SQLDBPwd'"
}
$Connection.ConnectionString = $connectionStr
$Connection.Open()
$Command = New-Object System.Data.SQLClient.SQLCommand
$Command.Connection = $Connection
$Command.CommandText = $SQLQuery
try
{
$Reader = $Command.ExecuteReader()
$Datatable.Load($Reader)
}
catch {
return($error)
}
$Connection.Close()
return $Datatable
}
}
答案 0 :(得分:0)
如何使用\
函数转义斜杠replace
?
$Server.replace('\\', '\\\\')
$connectionStr = "server='$Server';database='$Database';User ID='$SQLDBUser';Password='$SQLDBPwd'"