PowerShell から .NET Framework のライブラリを呼び出して、SQL Server データベースから ADO.NET の名前付きパラメータでデータを読み込むサンプルを提示します。
SQL Server は SQL Server 2016 Express Edition になります。
読み込むテーブルは Test データベースの USERS テーブルです。テーブルイメージは以下のようになります(ID、NAME とも型は NVARCHAR(50)です)。
実際の PowerShell のコードは以下のようになります。
# PowerShell から ADO.NET の名前付きパラメータで SQL Server のデータを読み込む # # 接続文字列の宣言 $connectionString = "Server=localhost\SQLEXPRESS;Database=Test;Integrated Security=SSPI;" # データベースの接続を宣言 $con = New-Object -TypeName System.Data.SqlClient.SqlConnection $connectionString # 名前付きパラメータ付き SQL を宣言 $sql = "SELECT * FROM USERS WHERE ID = @ID" # コマンドを宣言 $command = New-Object -TypeName System.Data.SqlClient.SqlCommand $sql, $con # コマンドにパラメータの値を設定 [void]$command.Parameters.AddWithValue("@ID","001") # 接続をオープン $con.Open() # データを読み込み $reader = $command.ExecuteReader() # 1件しかないがレコードの最後までループする While ($reader.Read()) { Write-Host $reader["ID"] ":" $reader["NAME"] } # DataReader を閉じる $reader.Close() # 接続を閉じる $con.Close()
実行結果は以下のようになり、このソースは正しく動作していることが分かります。
001 : 山田太郎