2017-07-20 1 views
0

Très nouveau pour le codage/Powershell, mais je suis très proche de mon projet. Essayer d'automatiser la connexion à ma base de données SQL et exporter vers CSV (ou exceler si possible). Je réussis à me connecter à la base de données et à obtenir des informations précises, mais je n'arrive pas à obtenir les données à exporter dans le fichier. Voici mon code:Erreur lors de l'exportation de SQL vers CSV - Pipeline

$DBServer = "E2\E2SQL" 
$databasename = "****" 
$UID = "sa" 
$pass = "*****" 
$Connection = new-object system.data.sqlclient.sqlconnection #Set new object to connect to sql database 
$Connection.ConnectionString ="server=$DBServer;database=$databasename;User Id=$UID;password=$pass;trusted_connection=False" # Connectiongstring setting for local machine database with window authentication 
Write-host "Connection Information:" -foregroundcolor yellow -backgroundcolor black 
$Connection #List connection information 


### Connect to Database and Run Query 

$SqlCmd = New-Object System.Data.SqlClient.SqlCommand #setting object to use sql commands 

$SqlQuery = @" 

SELECT JobNo FROM Online 

"@ 

$Connection.open() 
Write-host "Connection to database successful." -foregroundcolor green -backgroundcolor black 
$SqlCmd.CommandText = $SqlQuery 
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter 
$SqlAdapter.SelectCommand = $SqlCmd 
$SqlCmd.Connection = $Connection 
$DataSet = New-Object System.Data.DataSet 
$SqlAdapter.Fill($DataSet) 
$Connection.Close() 
$DataSet.Tables[0] 
export-csv -path "C:\Users\BOB\Desktop\TEST.csv" -NoTypeInformation 

Lorsque je lance le code, les informations correctes s'affichent! Cependant, j'obtiens un popup qui dit "cmdlet Exporter-Csv à la position 1 du pipeline de commande - Fournir des valeurs pour les paramètres suivants: InputObject" J'ai essayé de comprendre cela mais j'ai échoué. Une idée de ce qu'est cette erreur ou comment la réparer? Comment obtenir les données à écrire dans mon fichier CSV (ou exceler si possible)? Merci à tous

Répondre

0

Une façon plus courte de le faire:

$output ="C:\Users\BOB\Desktop\TEST.csv" 
$DBServer = "E2\E2SQL" 
$databasename = "****" 
$UID = "sa" 
$pass = "*****" 
$SqlQuery = @"SELECT JobNo FROM Online"@ 


invoke-sqlCmd -serverinstance @DBServer -database $databasename 
     -Username $UID -Password $pass -Query $SqlQuery | Export-Csv $output