2016-07-07 20 views
1

PowerShellスクリプトでストアドプロシージャを呼び出して、SQL Serverテーブルにデータを挿入しようとしています。スクリプトはエラーなく正常に実行されますが、テーブルに書き込む必要のある情報はありません。私はPowerShellをかなり新しくしているので、コードがうまくいかないのか分かりません。これについての助けに感謝します。PowerShellでストアドプロシージャを呼び出してSQL Serverデータベースに挿入する

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 

答えて

4

これは間違っているになります。

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

は、あなたが実際に欲しいものにこれらの値を設定してみてください。たとえば、

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

私は気づいていません。私は目の新鮮なペアが必要だったと思います。それはうまくいった。ありがとう! – Cornflake2068

関連する問題