首页 > 解决方案 > 使用 PowerShell 从 SQL Server 获取整行

问题描述

所以我用来ExecuteScalar()从表中获取一个值。但是我怎样才能获得多个值,即来自多个列的值。

$connectionString = "Data Source=ServerName;Initial Catalog=DB_Name; Integrated Security=SSPI" 
$connection = New-Object -TypeName System.Data.SqlClient.SqlConnection($connectionString)
$query = "select col1, col2, col3 from table where col1= x;" 
$command = New-Object -TypeName System.Data.SqlClient.SqlCommand($query, $connection)
$connection.Open()
$NewBatchID = $command.ExecuteScalar() 
$connection.Close()

标签: .netsql-serverpowershell

解决方案


在 PowerShell 中使用 .NET 对象的一种方法是使用SqlDataAdapter. 这可以将多行和多列加载到 aDataTable中以供后续使用。

此示例假设返回单行:

$connectionString = "Data Source=ServerName;Initial Catalog=DB_Name; Integrated Security=SSPI" 
$query = "select col1, col2, col3 from table where col1= x;"

$sqlDataAdapter = New-Object -TypeName System.Data.SqlClient.SqlDataAdapter($query, $connectionString)
$dataTable = New-Object -TypeName System.Data.DataTable
[void]$sqlDataAdapter.Fill($dataTable)
$col1 = $dataTable.Rows[0]["col1"]
$col2 = $dataTable.Rows[0]["col2"]
$col3 = $dataTable.Rows[0]["col3"]

推荐阅读