powershell数据库操作函数

来源:互联网 发布:sql 连续语句 编辑:程序博客网 时间:2024/05/22 14:03
#region 配置函数 cfunction c{    #====创建object    $o=new-object psobject    #-------数据库连接配置--------    $o|Add-Member -MemberType NoteProperty -Name t -Value 'mysql'         #数据库类型    $o|Add-Member -MemberType NoteProperty -Name h -Value 'localhost'     #主机地址    $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'       #默认访问的数据库    $o|Add-Member -MemberType NoteProperty -Name c -Value 'utf8'          #编码    #--------expand--------    #--------expand--------    #====对传入参数进行验证并输出返回值    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 "当前参数 $args 无效,请检查参数是否正确,可用参数及表示如下:"            write-host t : 表示数据库类型 -ForegroundColor Yellow            write-host h : 表示主机地址 -ForegroundColor Yellow            write-host u : 表示登录数据库的账号 -ForegroundColor Yellow            write-host p : 表示登录数据库的密码 -ForegroundColor Yellow            write-host d : 表示默认访问的数据库名 -ForegroundColor Yellow            write-host d : 表示连接数据库所使用的字符集 -ForegroundColor Yellow            exit        }    }}#endregion#region 数据库操作函数 _odb_function _odb_{param($funName, #执行的函数名$sql      #执行的sql脚本)    #====从配置函数c中,获取配置信息    $dbtpye=c t    $server=c h    $uid=c u    $pwd=c p    $DBName=c d    $char=c c        #====验证数据库类型,创建数据库对象    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 '请安装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 '数据库连接错误!'return $false}$cmd.Connection=$conn    #region用于写入、更新等无返回值操作 _exec_function _exec_{$cmd.CommandText=$sql[void]$cmd.ExecuteNonQuery()}#endregion#region用于查询、有返回值操作 _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#判断传入值,并执行相应函数    switch($funName){        '_exec_'{_exec_;break}        '_get_'{_get_;break}    }$conn.Close()}#endregion


c为配置函数,可扩展,所有的配置信息的设置与获取都由c完成。

函数的使用也非常简单,如果需要对数据进行写入操作,执行以下代码即可:

_odb_  '_exec_'  $sql

如果需要执行有返回值的操作,如需获取数据,则执行以下代码即可:

_odb_  '_get_'  $sql

返回值为dataset对象