使用ADO.NET類及方法實現數據庫的查詢並返回一個Object 數組

由於PowerShellX64的操作系統上有X86 & X64兩種,對於安裝的SQL Server同樣有兩種版本X64 & X86,如果安裝的是X86SQL Server只能通過X86PowerShell去執行Invoke-sqlcmd cmdlet,同理只能在安裝X64SQL Server只能通過X64PowerShell去執行Invoke-sqlcmd cmdlet,所以爲了防止這種隱患的存在,我們選擇了System.Data.SqlClient命名空間去實現,其中$SQLCommandSQL查詢語句,實現如下:

functionGet-DBObject

{

[OutputType([System.Array])]

param(

[Parameter(Position=0, Mandatory=$true)]

[ValidateNotNullOrEmpty()]

[System.String]

$SQLCommand

)

process

{

Write-Verbose"Get DataBase Object and returned."

$SQLCommand+=" ORDER BY CONVERT(Varchar(50),[id]) "

$connStr="Data Source=$DefaultServer;Initial Catalog=$DataBaseName;User ID=$DBUserName;Password=$DBPassword"

[System.Data.SqlClient.SqlConnection]::ClearAllPools()

[System.Data.SqlClient.SqlConnection]$sqlconn=New-ObjectSystem.Data.SqlClient.SqlConnection($connStr)

[System.Data.SqlClient.SqlCommand]$sqlcmd=New-ObjectSystem.Data.SqlClient.SqlCommand($SQLCommand,$sqlconn)

[System.Data.SqlClient.SqlDataAdapter]$sqladp=New-ObjectSystem.Data.SqlClient.SqlDataAdapter($sqlcmd)

[System.Data.DataSet]$ds=New-ObjectSystem.Data.DataSet

$output=$sqladp.Fill($ds,"Table0")

[Object[]]$dbObject=$ds.Tables["Table0"]

return$dbObject

}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章