2009-04-22 5 views
3

次のPowerShellのコードは、データセットにSQL結果をロードします。タイプされたプロパティは、PowerShellの型なしのDataTableにどのように表示されますか?

$sqlCommand = "SELECT A, B FROM TestTable" 
$connection = New-Object System.Data.OleDb.OleDbConnection $connectionString 
$command = New-Object System.Data.OleDb.OleDbCommand $sqlCommand,$connection 
$connection.Open() 
$adapter = New-Object System.Data.OleDb.OleDbDataAdapter $command 
$dataset = New-Object System.Data.DataSet 
[void] $adapter.Fill($dataSet) 

私は$ dataset.Tablesを学ぶために驚い[0] .Rows [0] .Aは働きます! Get-Memberに行を渡してみましたが、AとBはオブジェクトのプロパティとしてリストされています。誰もがなぜこれが働いているのか分かりますか? DataSetはXSDから生成されませんでした。私はC#で同じコード行を書こうとしましたが、デバッガを使ってプロパティAとBを見ることができませんでした。

答えて

2

これはPowerShellの拡張型システムの一部です。データセット、XMLドキュメント、COM、AD、およびWMIオブジェクトなどの既知の多くの種類の場合、PowerShellは、歓迎される追加のプロパティを持つPSObjectに基になるネイティブオブジェクトをラップします。

関連する問題