2016-07-07 2 views
1

Ich versuche, eine gespeicherte Prozedur in einem PowerShell-Skript aufzurufen, um Daten in eine SQL Server-Tabelle einzufügen. Das Skript läuft ohne Fehler, aber die Informationen, die in die Tabelle geschrieben werden sollen, sind nicht vorhanden. Ich bin mir nicht sicher, wo der Code nicht funktioniert, da ich PowerShell ziemlich neu bin. Jede Hilfe mit diesem würde geschätzt werden.Aufrufen einer gespeicherten Prozedur in PowerShell zum Einfügen in die SQL Server-Datenbank

function WriteData 
{ 
    param 
    (
     [String] $Server, 
     [int] $CheckId, 
     [String] $Investigate 
    ) 

    try 
    { 
     $SqlConnection = New-Object System.Data.SqlClient.SqlConnection 
     $SqlConnection.ConnectionString = "Server=MyServer;DataBase=MyDatabase;Integrated Security=SSPI" 
     $SqlConnection.open() 
     $SqlCmd = New-Object System.Data.SqlClient.SqlCommand 
     $SqlCmd.CommandType = [System.Data.CommandType]::StoredProcedure 
     $SqlCmd.CommandText = "EXEC dbo.usp_InsertTest" 

     $param1=$sqlcmd.Parameters.Add("@param1" , [System.Data.SqlDbType]::VarChar) 
     $param1.Value = $param1 
     $param2=$sqlcmd.Parameters.Add("@param2" , [System.Data.SqlDbType]::Int) 
     $param2.Value = $param2 
     $param3=$sqlcmd.Parameters.Add("@param3" , [System.Data.SqlDbType]::VarChar) 
     $param3.Value = $param3 

     $SqlCmd.Connection = $SqlConnection 
     $tmp=$SqlCmd.ExecuteNonQuery() 
     $SqlConnection.Close() 
    } 
    catch 
    { 
     if($SqlConnection.State -eq "Open") 
     { 
      $SqlConnection.Close() 
     } 
     return -1 
    } 
} 

WriteData -Param1 Test -Param2 1 -Param3 HelloWorld 

Antwort

4

Das sieht falsch:

$param1.Value = $param1 
$param2.Value = $param2 
$param3.Value = $param3 

Versuchen Sie, diese Werte zu Einstellung, was Sie wirklich wollen. Zum Beispiel

$param1.Value = 'hi' 
$param2.Value = 1 
$param3.Value = 'bye' 
+0

Ich habe das nicht einmal bemerkt. Ich denke, dass ein frisches Paar Augen benötigt wurde. Das hat funktioniert. Vielen Dank! – Cornflake2068

Verwandte Themen