2015-04-02 74 views
0

我有一個power shell腳本來查詢數據庫並返回兩列,它們是一個鍵值對。我們稱他們爲& b。Powershell將sqlResults存儲到數組中

如何將其存儲到地圖中以便稍後調用?下面是mysql代碼,它運行並將列輸出到屏幕上。

$Connection = New-Object MySql.Data.MySqlClient.MySqlConnection 
$Connection.ConnectionString = $ConnectionString 
$Connection.Open() 

$Command = New-Object MySql.Data.MySqlClient.MySqlCommand($Query, $Connection) 
$DataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($Command) 
$DataSet = New-Object System.Data.DataSet 
$RecordCount = $dataAdapter.Fill($dataSet, "data") 
$DataSet.Tables[0] 

只是不確定如何將鍵值對存儲在mapto中以後使用。這兩列都是數字。

謝謝。

+0

當您運行以下,會發生什麼: '$ mySQLResults = $ DataSet.Tables [0]'當我運行 '$ mySQLResults' – FoxDeploy 2015-04-02 13:39:48

+0

解析錯誤。 – user1158745 2015-04-02 13:49:54

+0

我在想,我現在有我的數據集。我想將它存儲在一個哈希表中。我怎麼循環雖然結果 – user1158745 2015-04-02 13:50:30

回答

0

你想循環遍歷結果中的每個對象嗎?

$Records = $DataSet.Tables[0] 
$Records.Keys | ForEach-Object {$Record.$_} 

這將允許您遍歷對象併爲它們中的每一個運行一些代碼。

舉例來說,我有一個哈希表是這樣的:

$Records = [hashtable]@{'Name'='Stephen';'Hair'='Red'} 

結果:

$Records.Keys | ForEach-Object {"object `$Records.$_ = $($Records.$_)"} 
>object $Records.Hair = Red 
>object $Records.Name = Stephen 

如果這是不是你要找的內容,請評論讓我可以嘗試幫助你解決問題。

+0

所以我得到它的工作現在的問題是,當試圖將數據添加到地圖,一些鍵是相同的,但價值是不同的。有沒有辦法告訴PS忽略重複? – user1158745 2015-04-02 14:06:01

+0

我得到的錯誤是異常調用添加,有2個參數:項目已被添加。 – user1158745 2015-04-02 14:06:41

+0

鍵/值對必須是唯一的。那麼你是否試圖用一個新值更新一個字段,或者如果已經存在的話你是不是想添加新的值。 – FoxDeploy 2015-04-02 14:08:06