[英]Connection to SQL Server through Powershell (not local)
我正在尝试使用 PowerShell 连接到远程 SQL 服务器实例。
我的用户名是ONE_PERSON
。
这是我正在使用的代码:
$user = "ONE_PERSON"
$connectionString = "Server=$dataSource; uid=$user; pwd=$pwd; Database=$database; Integrated Security = False;"
$connection = New-Object System.Data.SqlClient.SqlConnection
$connection.ConnectionString = $connectionString
$connection.Open()
当我运行这个时,我得到一个错误
用户“ONE_Person”登录失败
出于某种原因,它会将我的用户切换为小写,即使当我自己运行$user
时,它仍然以大写的ONE_PERSON
显示我。
我什至尝试通过在末尾使用.ToUpper
来强制它保持大写
和见解将不胜感激
$pwd 是 PowerShell 中的保留路径变量。 尝试将您的变量保存为 $password 之类的东西,然后看看它是否有效。
1.创建连接
2.创建您的命令(将要执行的 T-SQL)
3.创建你的数据适配器(如果你想检索数据)
4.创建你的数据集(适配器填充这个对象)
创建连接您只需创建 System.Data.SqlClient.SqlConnection 的 object 并传递将用于连接到给定 SQL 服务器实例的连接字符串……不要忘记打开它。
$sqlConn = New-Object System.Data.SqlClient.SqlConnection
$sqlConn.ConnectionString = “Server=localhost\sql12;Integrated Security=true;Initial Catalog=master”
$sqlConn.Open()
创建你的命令这里有几个选项,因为 SqlConnection 实际上包含一个方法,你可以使用它来创建你的命令 object,或者你可以一起创建一个单独的 object。 我已经看到使用了这两个选项,所以它在很大程度上是一个偏好。
$sqlcmd = $sqlConn.CreateCommand()
<# or #>
$sqlcmd = New-Object System.Data.SqlClient.SqlCommand
$sqlcmd.Connection = $sqlConn
$query = “SELECT name, database_id FROM sys.databases”
$sqlcmd.CommandText = $query
创建您的数据适配器根据定义,这个 object“代表一组数据命令和一个用于填充数据集的数据库连接”。 您创建 SqlDataAdapter 并将其传递给之前创建的命令 object,$sqlcmd。
$adp = New-Object System.Data.SqlClient.SqlDataAdapter $sqlcmd
创建您的数据集(并填充它)这个 object 将是 System.Data.DataSet 的类型,并且定义为简单的“内存中的数据缓存”。 需要注意的是,您正在运行的查询必须加载到 memory 中,因此数据集越大,需要的 memory 就越多。
$data = New-Object System.Data.DataSet
$adp.Fill($data) | Out-Null
检索您的数据在您完成所有操作之后,您可能想知道您是如何看到这些数据的? 数据本身位于 DataSet object 的 Table 属性内的表集合中。 现在取决于您正在使用的 .NET 的版本,您可能实际上需要指定集合的索引(例如 Tables[0]),但这通常仅在 .NET 4.0 以下的旧版本中需要。
$data.Tables
<# or #>
$data.Tables[0]
有关更多信息,请观看此视频https://youtu.be/P01_Zd11HX0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.