我正在处理的 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”方法有什么问题吗?