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


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

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

_odb_  '_exec_'  $sql

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

_odb_  '_get_'  $sql

返回值为dataset对象

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值