[Reflection.Assembly]::LoadFile("C:\Program Files\PackageManagement\NuGet\Packages\System.Data.SQLite.Core.1.0.111.0\lib\net46\System.Data.SQLite.dll")
$sqlite = New-Object System.Data.SQLite.SQLiteConnection
$sqlite.ConnectionString = "Data Source = C:\Users\shskw\OneDrive\ドキュメント\test.db"
$sqlcmd = New-Object System.Data.SQLite.SQLiteCommand
$sqlcmd.Connection = $sqlite
$sqlite.Open()
# SQLiteのバージョン表示
$sql = "SELECT sqlite_version()"
$sqlcmd.CommandText = $sql
$rs = $sqlcmd.ExecuteReader()
while ($rs.Read()){
$rs[0]
}
# SQLiteCommandの破棄
# これをしないと、以下のSQL発行で以下の例外メッセージが表示され中断される
# "DataReader already active on this command"
$sqlcmd.Dispose()
$sql = "CREATE TABLE t1 (name, ostype)"
$sqlcmd.CommandText = $sql
$ret = $sqlcmd.ExecuteNonQuery()
# INSERT実行
$ins_data = @(@("Windows10","Windows"),@("Ubuntu","Linux"),@("FreeBSD","BSD"))
$ins_data | % {
$name =$_[0];
$ostype=$_[1];
$sql="INSERT INTO t1 VALUES('${name}','${ostype}')"
$sqlcmd.CommandText = $sql
$ret = $sqlcmd.ExecuteNonQuery()
}
# SELECT実行および表示
$sql = "SELECT * FROM t1"
$sqlcmd.CommandText = $sql
$rs = $sqlcmd.ExecuteReader()
while ($rs.Read()){
Write-Host ("|{0,-12}|{1,-12}|" -f $rs[0], $rs[1])
}
# SQLiteの切断
$sqlcmd.Dispose()
$sqlite.Close()