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

powershell 之数据库操作

[复制链接]

尚未签到

发表于 2018-9-2 06:37:02 | 显示全部楼层 |阅读模式
#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-561248-1-1.html 上篇帖子: Powershell监控操作系统用户账号事件并预警 下篇帖子: Powershell 之加解密
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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