Below is a script that will execute an sql query and returns a disconnected data (DataTable) using Powershell.
<#
.SYNOPSIS
Queries a data source and returns a disconnected data (DataTable)
.DESCRIPTION
Queries a data source and returns a disconnected data (DataTable)
.NOTES
File Name: Get-DbDataTable.ps1
Author: Randy Aldrich Paulo
.EXAMPLE
Get-DbDataTable "Data Source=.;Integrated Security=SSPI;Initial Catalog=DatabaseName" "SELECT TOP 10 * From Table1"
#>
function Get-DbDataTable
(
[string]$connectionString,
[string]$query,
[System.Data.CommandType]$commandType=[System.Data.CommandType]::Text,
[string]$providerName = "System.Data.SqlClient"
)
{
#Initialize
$databaseFactory = [System.Data.Common.DbProviderFactories]::GetFactory($providerName)
$dbConnection = $databaseFactory.CreateConnection()
$dbConnection.ConnectionString = $connectionString
#Create Command
$dbCommand = $databaseFactory.CreateCommand()
$dbCommand.Connection = $dbConnection
$dbCommand.CommandText =$query
$dbCommand.CommandType = $commandType
#Create Data Adapter
$dbAdapter = $databaseFactory.CreateDataAdapter();
$dbAdapter.SelectCommand = $dbCommand
$dataTable = New-Object System.Data.DataTable
try
{
#Fill with Results
$dbAdapter.Fill($dataTable)
}
catch {
throw
}
finally {
if($dbConnection.ConnectionState -ne [System.Data.ConnectionState]::Closed)
{
$dbConnection.Close()
}
}
return $dataTable
}