powershell 之数据库操作
admin
2023-05-30 08:02:23
0次
#region 配置函数 c  
function 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

调用

_odb_ _get_ sql    有返回值
或
_odb_ _exec_ sql   无返回值


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...