Если я хочу вставить значения в массив в одно соединение, как я могу изменить код ниже? До сих пор я получаю сообщение об ошибке «Уже есть открытый DataReader, связанный с этой командой, который должен быть закрыт первым», если только я не поместил $ Connection.Open () и $ Connection.Close () внутри цикла for, что будет стоить мне скорость одного соединения.
$list = 'aaa','bbb','cccc','ddddd','eeeee','ffff'
$Connection = New-Object System.Data.SQLClient.SQLConnection
$Connection.ConnectionString = "server='$Server';database='$Database';trusted_connection=true;"
$Connection.Open()
$Command = New-Object System.Data.SQLClient.SQLCommand
$Command.Connection = $Connection
foreach($i in $list) {
$sql ="if not exists (select 1 from [bfs] where [key] = '$i' )
begin
insert bfs
select '$i'
end
"
$Command.CommandText = $sql
$Command.ExecuteReader()
}
$Connection.Close()