2012-05-10 27 views
5

我写了一个简单的powershell脚本,用于检查PSA服务板中的票数,并输出票数和与之相关的颜色。但是,我的脚本在结果前打印了'1'。我对PowerShell非常陌生,而且我似乎无法找到能够打印此行的行。任何帮助,将不胜感激。由于我的powershell脚本在我的预期输出之前打印出'1'。为什么?

$SqlServer = "server" 
$SqlCatalog = "database" 
$SqlQuery = "SELECT COUNT(*) FROM v_rpt_Service WHERE Board_Name = 'Traige' AND Parent = ''" 
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection 
$SqlConnection.ConnectionString = "Server = $SqlServer; Database = $SqlCatalog; uid = user; pwd = pass" 
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand 
$SqlCmd.CommandText = $SqlQuery 
$SqlCmd.Connection = $SqlConnection 
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter 
$SqlAdapter.SelectCommand = $SqlCmd 
$DataSet = New-Object System.Data.DataSet 
$SqlAdapter.Fill($DataSet) 
$SqlConnection.Close() 
$value = $DataSet.Tables[0].Rows[0][0] 
$color = "Red" 
if($value -lt 4){ 
$color = "Yellow" 
} 
if($value -lt 1){ 
$color = "Green" 
} 

$obj = new-object System.object 
add-member -inputobject $obj -membertype NoteProperty -Name Tickets -value $value 
add-member -inputobject $obj -membertype NoteProperty -Name Color -value $color 
$obj 
+1

$ SqlAdapter.Fill($ DataSet) Out-Null我猜想返回的行数是1 –

+0

谢谢!如果您将您的评论作为答案,我会将其标记为正确!我没有意识到填充数据集会自动打印。谢谢 ! –

回答

9
$SqlAdapter.Fill($DataSet) | Out-Null 

这里阅读DbDataAdapter.Fill和它的返回值:

类型:System.Int32 成功添加的行数或在DataSet刷新。这不包括受不会返回行的语句影响的行。

3

下面是投下不使用管道中的孔隙的替代方案。出于性能原因应避免使用管道。

[void] $SqlAdapter.Fill($DataSet); 
相关问题