我正在构建一个PowerShell脚本来清理我在计算机上运行的数百个批处理文件执行和计划任务。
我正在清理的其中一个进程是与远程SQL服务器的连接,该服务器将.csv文件下载到网络位置。
它一遍又一遍地工作,然后我收到以下消息
Exception calling "Fill" with "1" argument(s): "ExecuteReader: CommandText property has not been initialized" At L:\Operations Database\BatchScriptExecutions\PS\Scripts\0000 - 0100\ControlsBrokerRec.ps1:2426 char:1 + $SqlAdapter.Fill($DataSet); + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : InvalidOperationException
我想知道如果发生此错误,我可以做些什么来重新运行该过程? PowerShell中是否存在循环错误的方法?
正在运行的代码是以下的多次迭代:
## - Runs Script from Set Location
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand;
$SqlCmd.CommandTimeout=$timeout;
$SqlCMD.CommandText = $CL3CASHPOSITIONSSCRIPTWINS;
$SqlCmd.Connection = $SqlConnection;
## - Extract Data and build sql data object
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter;
$SqlAdapter.SelectCommand = $SqlCmd;
$DataSet = New-Object System.Data.DataSet;
$SqlAdapter.Fill($DataSet);
$DataSetTable = $DataSet.Tables["Table"];
## - Check for Null Return of Data into table
if ($DataSet.Tables["Table"]) {
$isnotnull
$DataSet.Tables["Table"] | Export-Csv $CL3CASHPOSITIONSEXPORTWINS -NoTypeInformation
echo "Cash Wins"
} else {
echo "NULL NULL NULL"
}
问题偶然发生,我不确定如何为此测试解决方案。我假设代码中应该有某种catch语句,但我不知所措。