0

这必须是完全明显的,所以如果它是原谅我。我已经在一天的大部分时间里翻阅了帖子、文章等,希望有人能对此有所了解。

问题是我的 DataSet Fill 在 inlinescript 脚本块中失败。我一直在寻找如何在这个 inlinescript 脚本块中查看我的 $connectionstring、$query 和 $cmd 变量的内容。我已经定义了一个连接字符串和查询变量。我可以做一个 $conn.Open() 并且它不会失败。我已将连接和查询变量传递到我的 SQLCommand 对象中:

     

 $cmd = New-Object system.Data.SqlClient.SqlCommand($query, $conn) 

我创建了 DataSet 和 DataAdaptor 对象: 

      

$ds = New-Object System.Data.DataSet
       $da = New-Object System.Data.SqlClient.SqlDataAdapter($cmd)

执行以下操作时:

 try {
    [void]$da.Fill($ds)
    }
    catch {
    Write-Error "Not able to fill dataset for list of customers!"
    }

捕获/错误分支被采用。

我的信念是没有返回任何结果,因此 $cmd 为空导致填充错误。在运行手册中,将输出发送到控制台的命令均无效。能够捕获 $connectionstring、$query 和 $cmd 变量的内容将是巨大的。

顺便说一句,$query 中的代码在 SSMS 中按预期执行。

如果没有 try-catch 语句,则会出现以下错误:

 CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : InvalidOperationException You cannot call a method on a null-valued expression.
4

0 回答 0