@atm87

Почему выводится пустая таблица?

Есть код. Соединяемся в БД. Должны выводиться данные из таблицы:
spoiler
$Server = '.\SQLEXPRESS'
$DatabaseName = 'managementDB'
Connect-DB -Server $Server -DatabaseName $DatabaseName
$sqlSelect = "SELECT ip, computername, os, OSArchitecture, username, domain FROM computers;"
$processes = Invoke-DB -sqlSelect $sqlSelect | Select-Object -Property ip, computername, os, OSArchitecture, username, domain
Write-Host $processes
Set-DGV -DGV $datagridviewResults `
		-Data $processes `
		-ColumnOrder ip, computername, os, OSArchitecture, username, domain `
		-ColumnWidth 100, 100, 150, 200, 50, 50, 50 `
		-EnableWordWrap ip, computername, os, OSArchitecture, username, domain `
		-EnableRowAutoSize

function Set-DGV
{
	Param (		
		[Parameter(Mandatory = $true)]
		$DGV,
		[Parameter(Mandatory = $true)]
		$Data,
		[String[]]$ColumnOrder,
		[Int[]]$ColumnWidth,
		[String[]]$EnableWordWrap,
		[Switch]$EnableRowAutoSize
	)
	
	# Очистите DGV.  Когда DGV обновляется, данные в противном случае были бы добавлены
	#, что приводит к повторению значений.  Это предотвратит это.
	
	For ($X = 0; $X -lt $DGV.Rows.Count; $X++)
	{
		$DGV.Rows.RemoveAt($X)
		$DGV.Rows.Clear()
		$DGV.Columns.Clear()		
	}
	
	# Создайте ArrayList для хранения отсортированных имен столбцов.
	
	$ColumnNameList = New-Object System.Collections.ArrayList
	
	# Получите список всех названий свойств.
	
	$Names = $Data | Get-Member -MemberType Properties | Select-Object -ExpandProperty Name
	
	ForEach ($C in $Names)
	{
		$ColumnNameList.Add($C)	
	}
	
	# Измените порядок в списке, если существует предпочтительный порядок отображения свойств.
	
	For ($X = $ColumnOrder.count; $X -ge 0; $X--)
	{
		For ($Y = 0; $Y -lt $ColumnNameList.Count; $Y++)
		{		
			If ($ColumnOrder[$X] -eq $ColumnNameList[$Y])
			{
				# Стандартный алгоритм подкачки.	
				$Temp = $ColumnNameList[$X]
				$ColumnNameList[$X] = $ColumnOrder[$X]
				$ColumnNameList[$Y] = $Temp
			}
		}		
	}
	
	# Отобразить имена столбцов в DGV
	
	ForEach ($C in $ColumnNameList)
	{
		$ColumnCount = $DGV.ColumnCount + 1	
		$DGV.ColumnCount = $ColumnCount
		$DGV.Columns[$ColumnCount - 1].HeaderText = "$C"
	}
	
	# Установите ширину столбцов
	# Чтобы гарантировать, что объем информации, отправляемой в этот параметр, не превышает
	# количество свойств, максимальное количество столбцов, ширина которых может быть изменена
	#, устанавливается равным количеству свойств в отображаемом объекте
	#.  Затем вычисляется количество отправленных значений ширины столбцов.  Меньшее из
	# 2 используется для определения того, сколько значений ширины столбцов необходимо изменить.
	
	If ($ColumnWidth -ne $null)
	{
		$MaxWidth = $ColumnNameList.Count	
		If ($ColumnWidth.Count -lt $MaxWidth) { $MaxWidth = $ColumnWidth.count }
		For ($X = 0; $X -lt $MaxWidth; $X++)
		{
			$DGV.Columns[$X].Width = $ColumnWidth[$X]	
		}
	}
	
	
	
	# Включить перенос слов
	#$DGV.DefaultCellStyle.WrapMode = 'True'
	
	If ($EnableWordWrap -ne $null)
	{
		For ($X = 0; $X -lt $EnableWordWrap.Count; $X++)
		{		
			If ($EnableWordWrap[$X] -eq $ColumnNameList[$X])
			{		
				$DGV.DefaultCellStyle.WrapMode = 'True'	
			}
		}
	}
	
	# Добавьте первую строку.
	
	$DGV.Rows.Add()
	
	# Получить количество отображаемых строк
	
	$RowTotal = $Data.count
	
	# Установите текущую строку.
	
	$Row = 0
	
	# Работайте с одним экземпляром по очереди.
	
	foreach ($Item in $Data)
	{
		# Определите номер строки
		
		For ($X = 0; $X -lt $ColumnNameList.Count; $X++)
		{
			$DGV.Rows[$Row].Cells[$X].Value = $Item | Select-Object -ExpandProperty $ColumnNameList[$X]
			
			# Разрешить автоматическое изменение размера строки.
			
			If ($EnableRowAutoSize)
			{
				$DGV.AutoResizeRow($Row)
			}
		}
		
		# Добавьте следующую строку.
		
		If ($Row -lt $Data.Count - 1)
		{
			$Row++
			$DGV.Rows.Add()
		}
	}
}


Но выводится пустая таблица, причём кол-во строк соответствует кол-ву данных в таблице базы данных:
spoiler
65ca20b3db78a324048433.png
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы