Powershell 使用sqladapter returns返回数据时,找不到“的重载”;填写「;争论也很重要

Powershell 使用sqladapter returns返回数据时,找不到“的重载”;填写「;争论也很重要,powershell,Powershell,我正在尝试使用powershell从sql数据库中删除表中的所有数据。使用这些数据,我可以使用foreach语句和每个字段 我遇到以下错误: MethodException:为“Fill”和找到多个不明确的重载 参数计数:“1” 我不知道如何解决这个问题,我们将寻求帮助 $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $SqlConnection.ConnectionString = $constring $SqlC

我正在尝试使用powershell从sql数据库中删除表中的所有数据。使用这些数据,我可以使用foreach语句和每个字段

我遇到以下错误:

MethodException:为“Fill”和找到多个不明确的重载 参数计数:“1”

我不知道如何解决这个问题,我们将寻求帮助

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = $constring
$SqlConnection.AccessToken = $AccessToken
$SqlConnection.Open()
$SQLQuery  = "SELECT DISTINCT servername, DBName FROM DBInfo "
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText =  $SQLQuery 
$SqlCmd.Connection = $SqlConnection
$ReaderValidate

#SQL Adapter - get the results using the SQL Command
$sqlAdapter = new-object System.Data.SqlClient.SqlDataAdapter 
$sqlAdapter.SelectCommand = $SQLQuery
$dataSet = new-object System.Data.Dataset
$allResults = $sqlAdapter.Fill($SqlCmd.CommandText) 
 
Write-output = "$allResults"

#Close SQL Connection
$sqlConnection.Close();

我正在使用azure函数和托管idenitity访问数据库。这就是我使用“$SqlConnection.AccessToken”的原因。

尝试使用
$DataSet
作为
$Adapter.Fill()方法的参数:

$allResults = $sqlAdapter.Fill($dataSet)
一个很好的想法是,你正在填充数据集

下面是我经常使用的代码,虽然它是使用
::New()
方法而不是使用
New Object
,但它的旧版本与您的类似

$ConnStr = "Server=<ServerName>,<Port>; Database=<DBName>; Integrated Security=true"
$Query   = "SELECT * FROM <TableName> WHERE <SomeCondition>"
$Conn    = [System.Data.SqlClient.SqlConnection]::new( $ConnStr )

$Conn.Open()

$Adapter = [System.Data.SqlClient.SqlDataAdapter]::new( $Query, $Conn )
$DataSet = [System.Data.DataSet]::new()

[Void]$Adapter.Fill( $DataSet )

$Conn.Close()
在我的代码中,我使用的是第三个。命令文本后跟已实例化的连接对象

OverloadDefinitions
-------------------
System.Data.SqlClient.SqlDataAdapter new()
System.Data.SqlClient.SqlDataAdapter new(System.Data.SqlClient.SqlCommand selectCommand)
System.Data.SqlClient.SqlDataAdapter new(string selectCommandText, string selectConnectionString)
System.Data.SqlClient.SqlDataAdapter new(string selectCommandText, System.Data.SqlClient.SqlConnection selectConnection)