zoukankan      html  css  js  c++  java
  • 【PowerShell】OledbHelper

    <#	
        .NOTES
        ===========================================================================
         Created on:   	
         Created by:   	
         Organization: 	
         Filename:     	OledbHelper
        ===========================================================================
        .DESCRIPTION
            A toolkit for OleDb.
    #>
    
    function New-OleDbConnection
    {
        <#
        .SYNOPSIS
            This functions helps you create an OleDbConnection.
    
        .PARAMETER $ConnectionString
            Database ConnecionString
        #>
        [OutputType([System.Data.OleDb.OleDbConnection])]
        param (
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$ConnectionString
        )
        
        $OleDbConnection = New-Object -TypeName System.Data.OleDb.OleDbConnection($ConnectionString)
        try
        {
            $OleDbConnection.Open()
            Write-Host 'Connected to oledb.'
            return $OleDbConnection
        }
        catch [exception]
        {
            Write-Warning ('Connect to database failed with error message:{0}' -f ,$_)
            $OleDbConnection.Dispose()
            return $null
        }
    }
    
    function Get-OleDbScalar
    {
        <#
        .SYNOPSIS
            This functions returns the execution result of an SQL statement.
    
        .PARAMETER $ConnectionString
            A ConnecionString of Database
        
        .PARAMETER $Command
            An SQL statement
        #>
        [OutputType([System.Object])]
        param (
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$ConnectionString,
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$Command
        )
        
        [System.Data.OleDb.OleDbConnection]$OleDbConnection = New-OleDbConnection -ConnectionString $ConnectionString
        if ($null -ne $OleDbConnection)
        {
            try
            {
                $cmd = $OleDbConnection.CreateCommand()
                $cmd.CommandText = $Command
                return $cmd.ExecuteScalar()
            }
            catch [Exception]
            {
                Write-Warning ('Execute Sql command failed with error message:{0}' -f $_)
                return $null
            }
            finally
            {
                $OleDbConnection.Close()
            }
        }
        return $null
    }
    
    function Get-OleDbDataTable
    {
        <#
        .SYNOPSIS
            This functions returns a DataTable of an SQL statement.
    
        .PARAMETER $ConnectionString
            A ConnecionString of Database
        
        .PARAMETER $Command
            An SQL statement
        #>
        [OutputType([System.Data.DataTable])]
        param (
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$ConnectionString,
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$Command
        )
        
        [System.Data.OleDb.OleDbConnection]$OleDbConnection = New-OleDbConnection -ConnectionString $ConnectionString
        if ($null -ne $OleDbConnection)
        {
            $dataSet = New-Object -TypeName System.Data.DataSet
            $dataAdapter = New-Object -TypeName System.Data.OleDb.OleDbDataAdapter($Command, $OleDbConnection)
            $dataAdapter.Fill($dataSet) | Out-Null
            return $dataSet.Tables | Select-Object -First 1
        }
        return $null
    }
    
    function Get-Entities
    {
        <#
        .SYNOPSIS
            This functions returns a set of Object of an SQL statement.
    
        .PARAMETER $ConnectionString
            A ConnecionString of Database
        
        .PARAMETER $Command
            An SQL statement
        
        .PARAMETER $Type
            System.Type
        #>
        [OutputType([System.Collections.ArrayList])]
        param (
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$ConnectionString,
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$Command,
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [type]$Type
        )
        
        [System.Data.DataTable]$dt = Get-OleDbDataTable -ConnectionString $ConnectionString -Command $Command
        if (($null -ne $dt) -and ($dt.Rows.Count -gt 0))
        {
            $list = New-Object -TypeName System.Collections.Generic.List[$Type]
            $props = $Type.GetProperties([System.Reflection.BindingFlags]::Public + [System.Reflection.BindingFlags]::Instance)
            foreach ($row in $dt.Rows)
            {
                $t = [System.Activator]::CreateInstance($Type);
                foreach ($item in $props)
                {
                    if (($null -ne $row[$item.Name]) -and ([System.DBNull]::Value -ne $row[$item.Name]))
                    {
                        $item.SetValue($t, $row[$item.Name], $null)
                    }
                }
                $list.Add($t)
            }
            return $list
        }
        return $null
    }
    
    function Get-OleDbDataSet
    {
        <#
        .SYNOPSIS
            This functions returns a DataSet of a set of SQL statements.
    
        .PARAMETER $ConnectionString
            A ConnecionString of Database
        
        .PARAMETER $Commands
            A set of SQL statements
        #>
        [OutputType([System.Data.DataSet])]
        Param (
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$ConnectionString,
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string[]]$Commands
        )
        
        [System.Data.OleDb.OleDbConnection]$OleDbConnection = New-OleDbConnection -ConnectionString $ConnectionString
        if ($null -ne $OleDbConnection)
        {
            $dataSet = New-Object -TypeName System.Data.DataSet
            $cmd = [System.String]::Join(";", $Commands)
            $dataAdapter = New-Object -TypeName System.Data.OleDb.OleDbDataAdapter($cmd, $OleDbConnection)
            $dataAdapter.Fill($dataSet) | Out-Null
            return $dataSet
        }
        return $null
    }
    
    function Invoke-OleDbCommandNonQuery
    {
        <#
        .SYNOPSIS
            This functions returns the boolean of execution result of an SQL statement.
    
        .PARAMETER $ConnectionString
            A ConnecionString of Database
        
        .PARAMETER $Command
            An SQL statement
        #>
        [OutputType([System.Boolean])]
        param (
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$ConnectionString,
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$Command
        )
        
        [System.Data.OleDb.OleDbConnection]$OleDbConnection = New-OleDbConnection -ConnectionString $ConnectionString
        if ($null -ne $OleDbConnection)
        {
            try
            {
                $cmd = $OleDbConnection.CreateCommand()
                $cmd.CommandText = $Command
                $cmd.ExecuteNonQuery() | Out-Null
                return $true
            }
            catch [Exception]
            {
                Write-Warning ('Execute Sql command failed with error message:{0}' -f $_)
                return $false
            }
            finally
            {
                $OleDbConnection.Close()
            }
        }
        return $false
    }
    
    function Invoke-OleDbCommandsNonQuery
    {
        <#
        .SYNOPSIS
            This functions returns the boolean of execution result of a set of SQL statements.
    
        .PARAMETER $ConnectionString
            A ConnecionString of Database
        
        .PARAMETER $Commands
            A set of SQL statements
        #>
        [OutputType([System.Boolean])]
        param (
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string]$ConnectionString,
            [ValidateNotNull()]
            [Parameter(Mandatory = $true)]
            [string[]]$Commands
        )
        
        [System.Data.OleDb.OleDbConnection]$OleDbConnection = New-OleDbConnection -ConnectionString $ConnectionString
        if ($null -ne $OleDbConnection)
        {
            $transaction = $OleDbConnection.BeginTransaction()
            try
            {
                $cmd = $OleDbConnection.CreateCommand()
                $cmd.Transaction = $transaction
                foreach ($item in $Commands)
                {
                    $cmd.CommandText = $item
                    $cmd.ExecuteNonQuery()
                }
                $transaction.Commit()
                return $true
            }
            catch [Exception]
            {
                $transaction.Rollback()
                Write-Warning ('Execute Sql commands failed with error message:{0}' -f $_)
                return $false
            }
            finally
            {
                $OleDbConnection.Close()
            }
        }
        return $false
    }
    
    
  • 相关阅读:
    最新自然语言处理(NLP)四步流程:Embed->Encode->Attend->Predict
    Word Embedding
    知乎:GAN 的发展对于研究通用人工智能有什么意义?
    2016年总结:教师路的开启,爱情味的初尝 (下)
    WinForm 窗口缩放动画效果
    关于DrawIndexedPrimitive函数的调用
    spring mvc--默认都使用了哪些bean
    杭电 HDU 1031 Design T-Shirt
    Android选择/拍照 剪裁 base64/16进制/byte上传图片+PHP接收图片
    hdoj5645DZY Loves Balls
  • 原文地址:https://www.cnblogs.com/zhuzhongxing/p/14147078.html
Copyright © 2011-2022 走看看