2

私が取り組んでいる PowerShell スクリプトは、データベースに対していくつかのスクリプト ファイル (.sql) の内容を実行しようとしています。データベースにレコードが存在することをスクリプトに確認させることができたので、データベース接続が機能しており、powershell スクリプトがデータベースにクエリを実行できることはわかっています。私が抱えている問題は、データベースに対して挿入を実行するスクリプトを取得することです。私のスクリプトの関連部分は次のとおりです。

function RunNonQuery($commandText) {
    $conn = New-Object MySql.Data.MySqlClient.MySqlConnection
    $conn.ConnectionString = GetConnString
    $conn.Open()
    $cmd = $conn.CreateCommand()
    $cmd.CommandText = $commandText
    $rowsAffected = $cmd.ExecuteNonQuery()
    $cmd.Dispose()
    $conn.Close()
    return $rowsAffected
}

「GetConnString」は、アクティブな接続文字列を返す単なるメソッドです。$commandText 変数の内容は次のとおりです。

-- CreationDate=4/11/2013 1:04:51 PM

INSERT INTO Patch (PatchName) VALUES ('TestFromPatchFile');

PowerShell スクリプトをデバッグすることで、コマンド テキストが "RunNonQuery" メソッドに正しく渡されていることがわかります。データベースに対してスクリプトを実際に実行しているようには見えません。$rowsAffected は常に 0 で、実行時にエラーはありません。実際のデータベースを見ると、挿入が行われていないことが確認できます。

私の「RunNonQuery」メソッドの何が問題なのか知っている人はいますか?

4

1 に答える 1

1

--のコメントを置き換える必要がありますCommandTextMySqlClient改行に気付かない可能性があり、そのため、コマンド全体がコメントアウトされます。

于 2013-04-12T08:23:35.933 に答える