千家信息网

powershell 之数据库操作

发表于:2025-02-13 作者:千家信息网编辑
千家信息网最后更新 2025年02月13日,#region 配置函数 c function c{ #====创建object $o=new-object psobject #-------数据库连接配置----
千家信息网最后更新 2025年02月13日powershell 之数据库操作
#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   无返回值


0