Hello, ADO.NET(PowerShell) World!
Posted on 9月 10th, 2012 by cx20
ADO.NET(PowerShell)
ADO.NET(ActiveX Data Objects .NET)は、ADO の後継で .NET ベースの DBMS 接続用 API である。
.NET データプロバイダを介することで様々な DBMS への接続が可能となっている。
.NET Framework 標準で使用できる .NET データプロバイダとしては、以下のようなプロバイダがある。
データプロバイダ名 |
説明 |
System.Data.SqlClient |
Microsoft SQL Server |
System.Data.OleDb |
OLE DB |
System.Data.Odbc |
ODBC |
System.Data.OracleClient |
Oracle |
ソースコード(PowerShell + ADO.NET + OLE DB + Jet データベース)
$conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=hello.mdb;"
$sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
$con = New-Object System.Data.OleDb.OleDbConnection($conStr)
$cmd = New-Object System.Data.OleDb.OleDbCommand($sqlStr, $con)
$con.Open()
$reader = $cmd.ExecuteReader()
while ( $reader.read() )
{
$reader.getName(0)
"---------------------"
$reader[0]
}
$con.Close() |
$conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=hello.mdb;"
$sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
$con = New-Object System.Data.OleDb.OleDbConnection($conStr)
$cmd = New-Object System.Data.OleDb.OleDbCommand($sqlStr, $con)
$con.Open()
$reader = $cmd.ExecuteReader()
while ( $reader.read() )
{
$reader.getName(0)
"---------------------"
$reader[0]
}
$con.Close()
ソースコード(PowerShell + ADO.NET + OLE DB + ACE データベース)
$conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=hello.accdb;"
$sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
$con = New-Object System.Data.OleDb.OleDbConnection($conStr)
$cmd = New-Object System.Data.OleDb.OleDbCommand($sqlStr, $con)
$con.Open()
$reader = $cmd.ExecuteReader()
while ( $reader.read() )
{
$reader.getName(0)
"---------------------"
$reader[0]
}
$con.Close() |
$conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=hello.accdb;"
$sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
$con = New-Object System.Data.OleDb.OleDbConnection($conStr)
$cmd = New-Object System.Data.OleDb.OleDbCommand($sqlStr, $con)
$con.Open()
$reader = $cmd.ExecuteReader()
while ( $reader.read() )
{
$reader.getName(0)
"---------------------"
$reader[0]
}
$con.Close()
ソースコード(PowerShell + ADO.NET + SQL Server)
$conStr = "SERVER=(local);DATABASE=master;UID=sa;PWD=P@ssW0rd"
$sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
$con = New-Object System.Data.SqlClient.SqlConnection($conStr)
$cmd = New-Object System.Data.SqlClient.SqlCommand($sqlStr, $con)
$con.Open()
$reader = $cmd.ExecuteReader()
while ( $reader.read() )
{
$reader.getName(0)
"---------------------"
$reader[0]
}
$con.Close() |
$conStr = "SERVER=(local);DATABASE=master;UID=sa;PWD=P@ssW0rd"
$sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
$con = New-Object System.Data.SqlClient.SqlConnection($conStr)
$cmd = New-Object System.Data.SqlClient.SqlCommand($sqlStr, $con)
$con.Open()
$reader = $cmd.ExecuteReader()
while ( $reader.read() )
{
$reader.getName(0)
"---------------------"
$reader[0]
}
$con.Close()
ソースコード(PowerShell + ADO.NET + Oracle)
[void][Reflection.Assembly]::LoadWithPartialName("System.Data.OracleClient")
$conStr = "Data Source=ORCL;User ID=scott;Password=tiger"
$sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message FROM DUAL"
$con = New-Object System.Data.OracleClient.OracleConnection($conStr)
$cmd = New-Object System.Data.OracleClient.OracleCommand($sqlStr, $con)
$con.Open()
$reader = $cmd.ExecuteReader()
while ( $reader.read() )
{
$reader.getName(0)
"---------------------"
$reader[0]
}
$con.Close() |
[void][Reflection.Assembly]::LoadWithPartialName("System.Data.OracleClient")
$conStr = "Data Source=ORCL;User ID=scott;Password=tiger"
$sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message FROM DUAL"
$con = New-Object System.Data.OracleClient.OracleConnection($conStr)
$cmd = New-Object System.Data.OracleClient.OracleCommand($sqlStr, $con)
$con.Open()
$reader = $cmd.ExecuteReader()
while ( $reader.read() )
{
$reader.getName(0)
"---------------------"
$reader[0]
}
$con.Close()
ソースコード(PowerShell + ADO.NET + ODBC + MySQL)
[void][Reflection.Assembly]::LoadWithPartialName("System.Data.Odbc")
$conStr = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;UID=root;PWD=P@ssW0rd"
$sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
$con = New-Object System.Data.Odbc.OdbcConnection($conStr)
$cmd = New-Object System.Data.Odbc.OdbcCommand($sqlStr, $con)
$con.Open()
$reader = $cmd.ExecuteReader()
while ( $reader.read() )
{
$reader.getName(0)
"---------------------"
$reader[0]
}
$con.Close() |
[void][Reflection.Assembly]::LoadWithPartialName("System.Data.Odbc")
$conStr = "Driver={MySQL ODBC 5.1 Driver};Server=localhost;UID=root;PWD=P@ssW0rd"
$sqlStr = "SELECT 'Hello, ADO.NET World!' AS Message"
$con = New-Object System.Data.Odbc.OdbcConnection($conStr)
$cmd = New-Object System.Data.Odbc.OdbcCommand($sqlStr, $con)
$con.Open()
$reader = $cmd.ExecuteReader()
while ( $reader.read() )
{
$reader.getName(0)
"---------------------"
$reader[0]
}
$con.Close()
実行方法
C:¥> powershell -file Hello.ps1 |
C:¥> powershell -file Hello.ps1
実行結果
Message
---------------------
Hello, ADO.NET World! |
Message
---------------------
Hello, ADO.NET World!
Tags: ADO.NET
Categories: .NET, ADO.NET, PowerShell
download
をクリックすると何処をクリックしても同じものがダウンロードされますが、意図した挙動でしょうか?
コメントありがとうございます。
ファイル名が同名だと同じファイルがダウンロードされてしまうのが原因のようです。