#region 配置函數(shù) c
function c{
#====創(chuàng)建object
$o=new-object psobject
#-------數(shù)據(jù)庫(kù)連接配置--------
$o|Add-Member -MemberType NoteProperty -Name t -Value 'MySQL' #數(shù)據(jù)庫(kù)類(lèi)型
$o|Add-Member -MemberType NoteProperty -Name h -Value 'localhost' #主機(jī)地址
$o|Add-Member -MemberType NoteProperty -Name u -Value 'root' #登錄名
$o|Add-Member -MemberType NoteProperty -Name p -Value 'root' #登錄密碼
$o|Add-Member -MemberType NoteProperty -Name d -Value 'monitor' #默認(rèn)訪(fǎng)問(wèn)的數(shù)據(jù)庫(kù)
$o|Add-Member -MemberType NoteProperty -Name c -Value 'utf8' #編碼
#--------expand--------
#--------expand--------
#====對(duì)傳入?yún)?shù)進(jìn)行驗(yàn)證并輸出返回值
switch($args[0]){
't'{return $o.t;break}
'h'{return $o.h;break}
'u'{return $o.u;break}
'p'{return $o.p;break}
'd'{return $o.d;break}
'c'{return $o.c;break}
default{
Write-Warning "當(dāng)前參數(shù) $args 無(wú)效,請(qǐng)檢查參數(shù)是否正確,可用參數(shù)及表示如下:"
write-host t : 表示數(shù)據(jù)庫(kù)類(lèi)型 -ForegroundColor Yellow
write-host h : 表示主機(jī)地址 -ForegroundColor Yellow
write-host u : 表示登錄數(shù)據(jù)庫(kù)的賬號(hào) -ForegroundColor Yellow
write-host p : 表示登錄數(shù)據(jù)庫(kù)的密碼 -ForegroundColor Yellow
write-host d : 表示默認(rèn)訪(fǎng)問(wèn)的數(shù)據(jù)庫(kù)名 -ForegroundColor Yellow
write-host d : 表示連接數(shù)據(jù)庫(kù)所使用的字符集 -ForegroundColor Yellow
exit
}
}
}
#endregion
#region 數(shù)據(jù)庫(kù)操作函數(shù) _odb_
function _odb_
{
param
(
$funName, #執(zhí)行的函數(shù)名
$sql #執(zhí)行的sql腳本
)
#====從配置函數(shù)c中,獲取配置信息
$dbtpye=c t
$server=c h
$uid=c u
$pwd=c p
$DBName=c d
$char=c c
#====驗(yàn)證數(shù)據(jù)庫(kù)類(lèi)型,創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象
switch($dbtpye){
'mssql'{
$conn = New-Object System.Data.SqlClient.SqlConnection
$cmd = new-object System.Data.SqlClient.SqlCommand
$SqlAdapter = New-Object system.Data.SqlClient.SqlDataAdapter
break
}
'mysql'{
try{
[void][System.Reflection.Assembly]::LoadWithPartialName("mysql.data")
}catch{Write-Warning '請(qǐng)安裝mysql連接組件mysql-connector-net-6.5.4'}
$conn = New-Object MySql.Data.MySqlClient.MySqlConnection
$cmd = new-object mysql.data.mysqlclient.mysqlcommand
$SqlAdapter = New-Object mysql.Data.mySqlClient.mySqlDataAdapter
break
}
}
try{
$conn.ConnectionString="server=$server;uid=$uid;pwd=$PWD;database=$DBName;charset=$char"
$conn.open()
}
catch{
Write-warning '數(shù)據(jù)庫(kù)連接錯(cuò)誤!'
return $false
}
$cmd.Connection=$conn
#region用于寫(xiě)入、更新等無(wú)返回值操作 _exec_
function _exec_
{
$cmd.CommandText=$sql
[void]$cmd.ExecuteNonQuery()
}
#endregion
#region用于查詢(xún)、有返回值操作 _get_
function _get_
{
$cmd.commandtext=$sql
$SqlAdapter.SelectCommand = $cmd
$DataSet = New-Object System.Data.DataSet
[void]$SqlAdapter.Fill($DataSet,"data")
return $dataset.tables['data']
}
#endregion
#判斷傳入值,并執(zhí)行相應(yīng)函數(shù)
switch($funName){
'_exec_'{_exec_;break}
'_get_'{_get_;break}
}
$conn.Close()
}
#endregion
調(diào)用
_odb_ _get_ sql 有返回值
或
_odb_ _exec_ sql 無(wú)返回值
本文名稱(chēng):powershell之?dāng)?shù)據(jù)庫(kù)操作
瀏覽地址:
http://weahome.cn/article/gcidhg.html