I have some things I want it to update when moving up and down the rows in the datagridview, but I cant seem to get it to work. I added a simple messagebox prompt and it is not working.
What am I doing wrong?
- $form1_Load={
- $old = (get-date).adddays(-5)
- $new = get-date
- $selected = "vmibex-wr.bancshares.mib"
- $connectionstring = "Server = devserver1; Database = events_data; Integrated Security = True"
- $connection = New-Object System.Data.SqlClient.SqlConnection
- $connection.ConnectionString = $connectionstring
- $connection.Open()
- $query2 = "select id, count(*) as instances from events where machinename = '$selected' and timecreated >='$old' and timecreated <= '$new' group by id order by instances DESC"
- $command = $connection.CreateCommand()
- $command.CommandText = $query2
- $result = $command.ExecuteReader()
- $table2 = new-object System.Data.DataTable
- $table2.Load($result)
- $connection.Close()
- $datagridview1.DataSource = $table2
- }
- #region Control Helper Functions
- function Load-DataGridView
- {
- <#
- .SYNOPSIS
- This functions helps you load items into a DataGridView.
- .DESCRIPTION
- Use this function to dynamically load items into the DataGridView control.
- .PARAMETER DataGridView
- The DataGridView control you want to add items to.
- .PARAMETER Item
- The object or objects you wish to load into the DataGridView's items collection.
- .PARAMETER DataMember
- Sets the name of the list or table in the data source for which the DataGridView is displaying data.
- .PARAMETER AutoSizeColumns
- Resizes DataGridView control's columns after loading the items.
- #>
- Param (
- [ValidateNotNull()]
- [Parameter(Mandatory=$true)]
- [System.Windows.Forms.DataGridView]$DataGridView,
- [ValidateNotNull()]
- [Parameter(Mandatory=$true)]
- $Item,
- [Parameter(Mandatory=$false)]
- [string]$DataMember,
- [System.Windows.Forms.DataGridViewAutoSizeColumnMode]$AutoSizeColumns = 'None'
- )
- $DataGridView.SuspendLayout()
- $DataGridView.DataMember = $DataMember
- if ($Item -is [System.Data.DataSet] -and $Item.Tables.Count -gt 0)
- {
- $DataGridView.DataSource = $Item.Tables[0]
- }
- elseif ($Item -is [System.ComponentModel.IListSource]`
- -or $Item -is [System.ComponentModel.IBindingList] -or $Item -is [System.ComponentModel.IBindingListView] )
- {
- $DataGridView.DataSource = $Item
- }
- else
- {
- $array = New-Object System.Collections.ArrayList
- if ($Item -is [System.Collections.IList])
- {
- $array.AddRange($Item)
- }
- else
- {
- $array.Add($Item)
- }
- $DataGridView.DataSource = $array
- }
- if ($AutoSizeColumns -ne 'None')
- {
- $DataGridView.AutoResizeColumns($AutoSizeColumns)
- }
- $DataGridView.ResumeLayout()
- }
- function ConvertTo-DataTable
- {
- <#
- .SYNOPSIS
- Converts objects into a DataTable.
- .DESCRIPTION
- Converts objects into a DataTable, which are used for DataBinding.
- .PARAMETER InputObject
- The input to convert into a DataTable.
- .PARAMETER Table
- The DataTable you wish to load the input into.
- .PARAMETER RetainColumns
- This switch tells the function to keep the DataTable's existing columns.
- .PARAMETER FilterWMIProperties
- This switch removes WMI properties that start with an underline.
- .EXAMPLE
- $DataTable = ConvertTo-DataTable -InputObject (Get-Process)
- #>
- [OutputType([System.Data.DataTable])]
- param(
- [ValidateNotNull()]
- $InputObject,
- [ValidateNotNull()]
- [System.Data.DataTable]$Table,
- [switch]$RetainColumns,
- [switch]$FilterWMIProperties)
- if($null -eq $Table)
- {
- $Table = New-Object System.Data.DataTable
- }
- if ($InputObject -is [System.Data.DataTable])
- {
- $Table = $InputObject
- }
- elseif ($InputObject -is [System.Data.DataSet] -and $InputObject.Tables.Count -gt 0)
- {
- $Table = $InputObject.Tables[0]
- }
- else
- {
- if (-not $RetainColumns -or $Table.Columns.Count -eq 0)
- {
- #Clear out the Table Contents
- $Table.Clear()
- if ($null -eq $InputObject) { return } #Empty Data
- $object = $null
- #find the first non null value
- foreach ($item in $InputObject)
- {
- if ($null -ne $item)
- {
- $object = $item
- break
- }
- }
- if ($null -eq $object) { return } #All null then empty
- #Get all the properties in order to create the columns
- foreach ($prop in $object.PSObject.Get_Properties())
- {
- if (-not $FilterWMIProperties -or -not $prop.Name.StartsWith('__')) #filter out WMI properties
- {
- #Get the type from the Definition string
- $type = $null
- if ($null -ne $prop.Value)
- {
- try { $type = $prop.Value.GetType() }
- catch { }
- }
- if ($null -ne $type) # -and [System.Type]::GetTypeCode($type) -ne 'Object')
- {
- [void]$table.Columns.Add($prop.Name, $type)
- }
- else #Type info not found
- {
- [void]$table.Columns.Add($prop.Name)
- }
- }
- }
- if ($object -is [System.Data.DataRow])
- {
- foreach ($item in $InputObject)
- {
- $Table.Rows.Add($item)
- }
- return @( ,$Table)
- }
- }
- else
- {
- $Table.Rows.Clear()
- }
- foreach ($item in $InputObject)
- {
- $row = $table.NewRow()
- if ($item)
- {
- foreach ($prop in $item.PSObject.Get_Properties())
- {
- if ($table.Columns.Contains($prop.Name))
- {
- $row.Item($prop.Name) = $prop.Value
- }
- }
- }
- [void]$table.Rows.Add($row)
- }
- }
- return @(,$Table)
- }
- #endregion
- $datagridview1_cellenter = [System.Windows.Forms.DataGridViewCellEventHandler]{
- Event Argument: $_ = [System.Windows.Forms.DataGridViewCellEventArgs]
- [System.Windows.Forms.messagebox]::show("enter")
- }
- $datagridview1_cellleave = [System.Windows.Forms.DataGridViewCellEventHandler]{
- Event Argument: $_ = [System.Windows.Forms.DataGridViewCellEventArgs]
- [System.Windows.Forms.messagebox]::show("leave")
- }
- [/code][codebox=powershell file=Untitled.ps1]