Я пытаюсь выполнить запрос к SQL с использованием powershell и был успешным, пока не попытался выбросить параметры в миксе. Мой код выглядит следующим образом:
$parameter="TEST"
$connectionString = "CONNECTION STRING";
$Connection = New-Object System.Data.OleDb.OleDbConnection $connectionString;
$Values = New-Object System.Data.DataSet;
$SelectCommand = "Select Value FROM dbo.Values WHERE Value=@param";
$Command = New-Object System.Data.OleDb.OleDbCommand $SelectCommand,$Connection;
$Command.Parameters.Add("@param", [System.Data.OleDb.OleDbType]::VarChar, 50)
$Command.Parameters["@param"].Value = $parameter;
$adapter = New-Object System.Data.OleDb.OleDbDataAdapter $Command;
[void] $adapter.Fill($Values);
foreach($a in $Values.tables[0].Rows )
{
#handle returned values
}
Я перепутал разные способы передачи параметра, который я нашел в Интернете, и всегда получаю один и тот же результат:
Exception calling "Fill" with "1" argument(s): "Must declare the scalar variable "@try"."
At line:28 char:31
+ [void] $adapter.Fill <<<< ($Values);
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
Буду признателен за любую помощь, найти хорошие примеры SQL-запросов powershell было сложно. Использование OLeDB не обязательно, если у кого-то есть пример, использующий другого провайдера, что тоже хорошо, я также безуспешно связывался с System.Data.SqlClient.SqlConnection.