在 PowerShell 中,目标是从 Sql Server 查询一些数据并将其放入预先格式化的 Excel 文件中。为此,以下 PowerShell 脚本片段会引发错误,提示“缺少程序集”。
从我可以在线收集的内容来看,它SqlClient.SqlDataAdapter
是 的一部分ADO.Net
,它不需要包含任何程序集(因为它始终存在于 OS .Net 框架安装中)。这个对吗?我该如何纠正这个问题?
...
... other connection code
...
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand;
$SqlCmd.Connection = $SqlConnection;
$SqlCmd.CommandText = $ActiveTransactions_Count_Query;
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter;
$SqlAdapter.SelectCommand = $SqlCmd;
$DataSet_ActiveTransaction = New-Object System.Data.DataSet;
$SqlAdapter.Fill($DataSet_ActiveTransaction);
$DataSetTable = $DataSet_ActiveTransaction.Tables[0];
$DataSetTable
错误:
New-Object : Cannot find type [Sql.Data.SqlClient.SqlDataAdapter]: make sure
the assembly containing this type is loaded.
At M:\Build.ps1:21 char:25 + $SqlAdapter = New-Object <<<<
Sql.Data.SqlClient.SqlDataAdapter;
+ CategoryInfo : InvalidType: (:) [New-Object],
PSArgumentException
+ FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand
将其放在脚本的顶部:
是的,它是操作系统的一部分,不,这通常不是必需的,但是您的操作系统版本 + PowerShell 版本 + SQL 2008 R2 的组合肯定存在一些问题。