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()

ソースコード(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()

ソースコード(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()

ソースコード(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()

ソースコード(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()

実行方法

C:¥> powershell -file Hello.ps1

実行結果

Message
---------------------
Hello, ADO.NET World!

Tags:

Categories: .NET, ADO.NET, PowerShell

2 Responses to 'Hello, ADO.NET(PowerShell) World!'

  1. ozzne より:

    download
    をクリックすると何処をクリックしても同じものがダウンロードされますが、意図した挙動でしょうか?

    • cx20 より:

      コメントありがとうございます。
      ファイル名が同名だと同じファイルがダウンロードされてしまうのが原因のようです。

cx20 へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

WP-SpamFree by Pole Position Marketing