我在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查询中传递参数(变量)吗?
答案 0 :(得分:1)
可能是错误:
$i -le $ActID.Length;
应该是
$i -lt $ActID.Length;
您还可以使用简化代码的管道:
$actId | % { ..... $cmd.Parameters.Add("@PATH", $_.Values) | Out-Null .... }
除了你使用的属性是Values
之外 - 它真的是你想要的吗?值看起来像是某种东西的集合。也许你想使用单一的价值。