2012-05-10 7 views
5

मैंने एक सरल पावरहेल स्क्रिप्ट लिखी जो पीएसए सेवा बोर्ड में टिकटों की संख्या की जांच करता है और टिकटों की संख्या और उसके साथ जुड़े रंग को आउटपुट करता है। हालांकि, मेरी स्क्रिप्ट परिणाम से पहले '1' प्रिंट कर रही है। मैं शक्तियों के लिए बहुत नया हूं, और मुझे वह रेखा नहीं मिल रही है जो इसे प्रिंट करेगी। किसी भी सहायता की सराहना की जाएगी। करने के लिए System.Int32 पंक्तियों की संख्या को सफलतापूर्वक जोड़ या डेटासेट में ताज़ा किया: धन्यवादमेरी शक्तिशक्ति स्क्रिप्ट मेरे अपेक्षित आउटपुट से पहले '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 ($ डेटासेट) | आउट-नल मुझे लगता है कि लौटाई गई पंक्तियों की संख्या 1 –

+0

धन्यवाद! यदि आप अपनी टिप्पणी का उत्तर देते हैं, तो मैं इसे सही के रूप में चिह्नित करूंगा! मुझे एहसास नहीं हुआ कि एक डेटासेट भरना स्वचालित रूप से प्रिंट होगा। धन्यवाद ! –

उत्तर

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

यहाँ के बारे में पढ़ें DbDataAdapter.Fill और अपनी वापसी मूल्य:

प्रकार। इसमें उन पंक्तियों से प्रभावित पंक्तियां शामिल नहीं होती हैं जो पंक्तियों को वापस नहीं करती हैं।

1

आपको कुछ पंक्तियों को इंजेक्ट करके वास्तविक रेखा तक सीमित करने में सक्षम होना चाहिए जो कुछ पाठ प्रिंट करें। एक बार जब आप वास्तविक रेखा पाते हैं, तो आप आउटपुट को दबाने के लिए इसे "आउट-नल" कमांडलेट के माध्यम से पाइप कर सकते हैं।

http://technet.microsoft.com/en-us/library/dd315279.aspx

3

यहाँ एक वैकल्पिक पाइपलाइन का उपयोग किए बिना शून्य करने के लिए डाले है। प्रदर्शन कारणों से पाइपलाइन से बचा जाना चाहिए।

[void] $SqlAdapter.Fill($DataSet); 
संबंधित मुद्दे