Code-Beispiel
Autor: Dr. Holger Schwichtenberg
Beschreibung
Die PowerShell besitzt keine Commandlets für den Datenbankzugriff und auch keinen Navigation Provider, obwohl es sich anbieten würde, auch Datenbanken ins Konzept der Navigation Provider einzubeziehen. Zum Datenbankzugriff kann man in der PowerShell auf ADO.NET zugreifen.
Das folgende PowerShell-Script gibt aus einer Microsoft Access-Datenbanktabelle alle Datensätze sortiert aus. Zum Einsatz kommt dabei der OLE DB-Provider für ADO.NET, der im .NET Framework ab Version 1.0 enthalten ist.
Programmcodebeispiele PowerShell-Pipeline
Eingabedaten
$Conn = "Provider=Microsoft.Jet.OLE DB.4.0;Data Source=j:\demo\dokumente\users.mdb;"
$SQL = "Select * from users order by UserSurname"
Datenbank öffnen
"Öffne die Datenbank..."
$conn = New-Object System.Data.OLE DB.OLE DBConnection($Conn)
$conn.open()
"Zustand der Datenbank: " + $conn.State
SQL-Befehl ausführen
"Befehl ausführen: " + $SQL
$cmd = New-Object System.Data.OLE DB.OLE DBCommand($sql,$conn)
$ada = New-Object System.Data.OLE DB.OLE DBDataAdapter($cmd)
$ds = New-Object System.Data.DataSet
$ada.Fill($ds, "Benutzer") | out-null
"Anzahl der Tabellen im Dataset: " + $ds.Tables.Count
"Anzahl der Datens#tze in Tabelle 1: " + $ds.Tables[0].Rows.Count
"Ausgabe der Daten:"
$ds.Tables[0] | Select UserFirstName, UserSurname, userid
Querverweise
Liste aller Codebeispiele
Definition '.NET Framework Class Library'
PowerShell Community Portal