设为首页 收藏本站
查看: 1258|回复: 0

powershell 之数据库操作

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-29 08:47:05 | 显示全部楼层 |阅读模式
#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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-306938-1-1.html 上篇帖子: Powershell 之加解密 下篇帖子: Powershell监控操作系统用户账号事件并预警 数据库操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表