我有一个带有datagridview的小型winforms powershell图形用户界面,datagridview使用一个数据表作为数据源,该数据表从SQL-Server中获取数据。
现在,我想使用DataGridViewAutoFilter库实现一个筛选器,它要求我在绑定源中拥有数据。根据我在网上找到的内容,我认为您可以只使用数据表作为绑定源的数据源,如下所示:
#Add assemblies
Add-Type -assembly System.Windows.Forms;
$script:stage = 'Prelive';
#region.stage - collects multiple strings like connstring from ext. script
#Skip to function GetAWTagebuch for the actual script
if($script:stage){
#region0.externeKomponenten
# SkriptVersion
$script:version = "0.1.0.5"
#"Stage: $script:stage , Quartal: $Quartal, Periode: $Periode, Zeitpunkt: $Zeitpunkt, Periodenconnstring: $PeriodeConnection" | Out-File -FilePath "\\filegradientprelive\data\Deployment\Auslieferung\Quartalsunabhaengig\KVNO\Powershell_Skripte\BackupActivity\output.txt"
if($script:stage -eq "Live"){
$Toolspath = "\\filegradientlive\data\Deployment\Ausfuehrung\Powershell\Tools\Tools.ps1"
}
elseif($script:stage -eq "Prelive"){
$Toolspath = "\\filegradientprelive\data\Deployment\Ausfuehrung\Powershell\Tools\Tools.ps1"
}
if (Test-Path $Toolspath) {
. (Get-Item $Toolspath)
}
elseif(Test-Path ((Get-Item -Path $MyInvocation.MyCommand.Path).DirectoryName + "\Tools.ps1")){
# Prämisse: Toolsskript liegt im gleichen Scriptverzeichnis
. ((Get-Item -Path $MyInvocation.MyCommand.Path).DirectoryName + "\Tools.ps1")
}
else{
Write-Host "Es konnte kein Tools-Skript eingebunden werden. Das Skript wird beendet."
echo
exit
}
#endregion0.externeKomponenten
#region1.GlobaleVariablen
[string]$script:LogLauf='1'
[string]$script:stage = $script:stage
[string]$script:Periode = $Periode
$script:GrundParam = get-Grundparameter -Stage $script:stage -Periode $Periode -LoggingTabelle $LoggingTabelle
#Folgende Werte werden als Grundparameter zurückgeliefert
[string]$script:CS_Systempruefung = $script:GrundParam.CS_Systempruefung;
[string]$script:CS_Gradient = $script:GrundParam.CS_Gradient;
[string]$script:CS_KVnet = $script:GrundParam.CS_KVnet;
[string]$script:CS_Logging = $script:GrundParam.CS_Logging;
[string]$script:LoggingTabelle = $script:GrundParam.LoggingTabelle;
[string]$script:LogLaufId = $script:GrundParam.LogLaufId;
[string]$script:Fileserver = $script:GrundParam.Fileserver;
[string]$script:Auslieferungspfad = $script:GrundParam.Auslieferungspfad;
[string]$script:Einzelinstanz_gerade = $script:GrundParam.Einzelinstanz_gerade;
[string]$script:Einzelinstanz_ungerade = $script:GrundParam.Einzelinstanz_ungerade;
[string]$script:DWH_Sammelinstanz = $script:GrundParam.DWH_Sammelinstanz;
[string]$script:Sammelinstanz = $script:GrundParam.Sammelinstanz;
[string]$script:AkonInstanz = $script:GrundParam.AkonInstanz;
[string]$script:KVOnlineInstanz = $script:GrundParam.KVOnlineInstanz;
#Zusätzliche Parametr bei angabe einer Periode
[string]$script:Periode = $Periode;
[string]$script:CS_Periode = $script:GrundParam.CS_Periode;
[string]$script:CS_Workflow = $script:GrundParam.CS_Workflow;
#[string]$script:CS_Intermediate = $script:GrundParam.CS_Intermediate;
[string]$script:PeriodenInstanz = $script:GrundParam.PeriodenInstanz;
[string]$script:Sammelinstanz_Periode = $script:GrundParam.Sammelinstanz_Periode;
#[string]$script:IntermediateInstanz = $script:GrundParam.IntermediateInstanz;
[string]$script:IntermediateDB = $script:GrundParam.IntermediateDB;
[string]$script:PeriodenId = $script:GrundParam.PeriodenId;
[string]$script:KVnetTyp = $script:GrundParam.KVnetTyp;
#endregion1.GlobaleVariablen
}
function GetAWTagebuch {
$dt = PM_DB-TableResult -Periode $script:stage -SQL ("SELECT * FROM [dbo].[IUP_AWtable];") -ConnectionString $script:CS_Systempruefung -LogConnectionString $script:CS_Logging -LogTable $script:LoggingTabelle -TestName AWtable;
}
function GenerateForm {
#Form parameters
$form_dbtest = New-Object System.Windows.Forms.Form;
$form_dbtest.Name = 'Binding Source Test';
$form_dbtest.Text = 'Binding Source Test';
$form_dbtest.Size = '1310, 650';
$form_dbtest.StartPosition = 1;
$form_dbtest.BackColor = '#3D6387';
$form_dbtest.FormBorderStyle = 3;
#Bindingsource
$BSBindingSource = New-Object System.Windows.Forms.BindingSource;
#DataTable
$dt = New-Object System.Data.DataTable;
GetAWTagebuch
$BSBindingSource.DataSource = $dt;
#DGV
$dgv = New-Object System.Windows.Forms.DataGridView;
$dgv.Name = 'dataGridView1';
$dgv.Size = '1235, 441';
$dgv.Anchor = (4, 8, 1);
$dgv.Location = '13, 21';
$dgv.RowTemplate.DefaultCellStyle.ForeColor = '#000096';
$dgv.TabIndex = 3;
$dgv.ColumnHeadersHeightSizeMode = 2;
$dgv.RowHeadersVisible = $True;
$dgv.RowHeadersWidth = 24;
$dgv.AllowUserToAddRows = $False;
$dgv.AllowUserToDeleteRows = $False;
$dgv.AllowUserToOrderColumns = $True;
$dgv.DataSource = $BSBindingSource;
$form_dbtest.Controls.Add($dgv);
[void]$form_dbtest.ShowDialog();
}
GenerateForm
不管什么原因,这不工作,虽然。我没有得到一个错误,但DGV没有显示任何东西。谁能告诉我,我做错了什么/我如何做正确的?
1条答案
按热度按时间0kjbasz61#
像在c#中一样执行此操作而不进行绑定