Чтобы выполнить определенный блок кода в зависимости от параметра, передаваемого в функцию, вы можете использовать конструкцию `if` или `switch` в PowerShell. Напишем функцию `Invoke-DB`, которая принимает параметры `$sqlInsert` и `$sqlSelect` и выполняет соответствующие методы, основываясь на типе SQL запроса (SELECT или INSERT).
```powershell
function Invoke-DB {
param (
[string]$ConnectionString,
[string]$sqlInsert,
[string]$sqlSelect
)
# Создаем объект подключения к базе данных
$connection = New-Object System.Data.SqlClient.SqlConnection
$connection.ConnectionString = $ConnectionString
$connection.Open()
# Создаем команду для выполнения
$cmd = $connection.CreateCommand()
if ($sqlInsert) {
# Если предоставлен SQL-запрос для вставки данных
$cmd.CommandText = $sqlInsert
$cmd.ExecuteNonQuery() # Выполняем запрос к базе
} elseif ($sqlSelect) {
# Если предоставлен SQL-запрос для выборки данных
$cmd.CommandText = $sqlSelect
$reader = $cmd.ExecuteReader() # Выполняем запрос к базе
# Далее, можно обработать данные, полученные из ридера
while ($reader.Read()) {
# Здесь можно что-то сделать с данными из ридера
}
$reader.Close() # Не забудьте закрыть ридер
}
$connection.Close() # Не забудьте закрыть подключение к базе данных
}
```
Как использовать эту функцию:
```powershell
# Подготовка строк подключения и SQL-запросов
$ConnectionString = "YourConnectionStringHere"
$sqlInsert = "INSERT INTO YourTable (Column1, Column2) VALUES (Value1, Value2)"
$sqlSelect = "SELECT * FROM YourTable"
# Вызов функции с SQL-запросом на вставку
Invoke-DB -ConnectionString $ConnectionString -sqlInsert $sqlInsert
# Вызов функции с SQL-запросом на выборку
Invoke-DB -ConnectionString $ConnectionString -sqlSelect $sqlSelect
```
При вызове функции `Invoke-DB`, установите только один из параметров `$sqlInsert` или `$sqlSelect`, в зависимости от того, какой тип операции вы хотите выполнить. Если предоставлена строка подключения и SQL-запрос на вставку, используется метод `ExecuteNonQuery`, если же задан SQL-запрос на выборку, то используется `ExecuteReader`.