2016-11-25 34 views
1

に送信されていない私は仕事PowerShellのストアドプロシージャのパラメータが

function Log-Build($lastExitCode, $result, $taskId) { 
    $date = Get-Date 
    $connection = New-Object System.Data.SqlClient.SqlConnection($connectionString) 

    $cmd = New-Object System.Data.SqlClient.SqlCommand 
    $myResult = $result -join "<br/>`r`n" |Out-String 
    $cmd.Connection = $connection; 

    $cmd.CommandText = "LSBuild_LogAndMailResult"; 

    $cmd.Parameters.AddWithValue("@Task_ID",[string]$taskId); 
    $cmd.Parameters.AddWithValue("@Result",[string]$myResult); 
    $cmd.Parameters.AddWithValue("@Deployment_Status",[int]$lastExitCode); 

    $connection.Open() 
    $cmd.ExecuteNonQuery() | Out-Null 
    $connection.Close() 
} 

の結果をログに記録PowerShellの(バージョン4)スクリプト内でストアドプロシージャを持って、私はそれを実行したときしかし、私はいつも次のエラーを取得します応答: "0" 引数(複数可)と "は、ExecuteNonQuery" を呼び出す

例外:「プロシージャまたは関数が 'LSBuild_LogAndMailResult' パラメータ '@Deployment_Status'、供給されなかった 見込ん

Powershell ISEのターミナルウィンドウで、パラメータがそこにあることを確認しました($ cmd.Parameters ["@ Deployment_Status"]。value;)、これは確実に追加されています。それはデータベース

+0

' $ LASTEXITCODE'が自動変数であるように、コマンドタイプを設定する必要がありません –

+0

私は$ lastExitCodeを削除して、ハードコードされた整数(0)をsqlパラメータとして追加しようとしましたが、依然として同じ結果を受け取りました – Daryl1976

答えて

2

に渡さなっていない理由を確認してくださいあなたは何か他のものに機能して `$ lastExitCode`パラメータの名前を変更し、ストアドプロシージャ

$cmd.CommandType = [System.Data.CommandType]::StoredProcedure 
+0

ありがとうございました - どこでもドキュメントを見つけることができませんでした – Daryl1976

関連する問題