2012-02-18 52 views
1

我試圖運行一個使用powershell的SQL查詢,併成功,直到我試圖在混合中拋出參數。我的代碼如下:SQL查詢通過powershell w /變量

$parameter="TEST" 
$connectionString = "CONNECTION STRING"; 
$Connection = New-Object System.Data.OleDb.OleDbConnection $connectionString; 
$Values = New-Object System.Data.DataSet; 
$SelectCommand = "Select Value FROM dbo.Values WHERE [email protected]"; 
$Command = New-Object System.Data.OleDb.OleDbCommand $SelectCommand,$Connection; 
$Command.Parameters.Add("@param", [System.Data.OleDb.OleDbType]::VarChar, 50) 
$Command.Parameters["@param"].Value = $parameter; 
$adapter = New-Object System.Data.OleDb.OleDbDataAdapter $Command; 
[void] $adapter.Fill($Values); 

foreach($a in $Values.tables[0].Rows) 
{ 

    #handle returned values 

} 

我搞砸周圍,我發現在網上,總是得到相同的結果傳遞一個參數不同的方式:

Exception calling "Fill" with "1" argument(s): "Must declare the scalar variable "@try"." 
At line:28 char:31 
+   [void] $adapter.Fill <<<< ($Values); 
+ CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
+ FullyQualifiedErrorId : DotNetMethodException 

任何幫助,將不勝感激,找到PowerShell SQL查詢的好例子很粗糙。使用OLeDB不是必需的,如果有人使用另一個提供者的例子,那麼我也一直在搞亂System.Data.SqlClient.SqlConnection,但沒有成功。

回答