Как передать параметр в запросе SQL из PowerShell - PullRequest
1 голос
/ 15 февраля 2010

У меня есть этот код в PowerShell, который выполняет SQL-запрос для ОБНОВЛЕНИЯ моей таблицы:

$Connection=new-object data.sqlclient.sqlconnection "server=server;database=mydb;trusted_connection=true;"
$Connection.open()

For ( $i = 0; $i -le $ActID.Length; $i ++ ) { 
    $cmd = New-Object System.Data.SqlClient.SqlCommand
    $cmd.Connection = $Connection
    $cmd.CommandText = 
    "
    update Table 
    set Note = @PATH
    "
    $cmd.Parameters.Add("@PATH", $ActID[$i].Values) | Out-Null

    $cmd.ExecuteNonQuery()
}

Я попытался обновить таблицу с помощью переменной, определенной в этой строке:

$cmd.Parameters.Add("@PATH", $ActID[$i].Values) | Out-Null

Но когда я выполняю скрипт, журнал ошибок говорит, что в $ ActID [$ i]

не передается значение

Существуют ли другие методы для передачи параметров (переменных) в запросах powershell?

1 Ответ

1 голос
/ 15 февраля 2010

В чем может быть ошибка:

$i -le $ActID.Length;

должно быть вероятно

$i -lt $ActID.Length;

Вы также можете использовать трубопровод, который упрощает код:

$actId | % { ..... $cmd.Parameters.Add("@PATH", $_.Values) | Out-Null .... }

Кроме того, что вы используете свойство Values - это действительно то, что вы хотели? Значения выглядит как коллекция чего-то. Может быть, вы хотели использовать одно значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...