@eskotov

Как правильно вставить данные в таблицу SQL из Powershell?

Доброго времени суток.
Как правильно выполнить вставку данных в таблицу средствами Powershell

Пример кода:

function Invoke-SQL {
    Param(
        [string]$DataSource,
        [string]$Database,
        [string]$SqlCommand,
        [string]$User,
        [string]$Password
    )
    if (($User) -and ($Password)) {
        $connectionString = "Data Source=$dataSource;User ID=$User;Password=$Password;Initial Catalog=$Database"
    } else { 
        $connectionString = "Data Source=$dataSource; " + "Integrated Security=SSPI; " + "Initial Catalog=$database"
     }
    $connection = new-object system.data.SqlClient.SQLConnection($connectionString)
    $command = new-object system.data.sqlclient.sqlcommand($sqlCommand,$connection)
    $connection.Open()
    $adapter = New-Object System.Data.sqlclient.sqlDataAdapter $command
    $dataset = New-Object System.Data.DataSet
    $adapter.Fill($dataSet) | Out-Null
    $connection.Close()
    $dataSet.Tables
}
$date = Get-Date -Format MM/dd/yyyy
$zeit = Get-Date -Format HH:mm

echo $date , $zeit , $Env:USERNAME

Invoke-SQL -dataSource PC-EKOTOV\SQLEXPRESS -database Login -sqlCommand "INSERT INTO login VALUES ($Env:USERNAME, $date, $zeit, '0');"


При исполнении выходит ошибка конвертации даты
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
@MaxKozlov Куратор тега PowerShell
самое простое - использовать $command.Parameter, а не изобретать свои собственные sql-инъекции.

И, если вы делаете INSERT, не мутить с Adapter, он для SELECT. Вам нужен
executenonquery
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы