C#函数返回空列表,而函数中的列表不是空的

C#函数返回空列表,而函数中的列表不是空的,c#,C#,函数的调用: List<ProceduraEtapuPolaFormularza> prawoPolGrida = impuls.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu, pole.idPola, poleGrida.id_pola_g); using (var t = impuls.connection.BeginTransaction()) { try { List<Pro

函数的调用:

List<ProceduraEtapuPolaFormularza> prawoPolGrida = impuls.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu, pole.idPola, poleGrida.id_pola_g);
using (var t = impuls.connection.BeginTransaction())
{
    try
    {
        List<ProceduraEtapuPolaFormularza> prawoPolGrida = impuls.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu, pole.idPola, poleGrida.id_pola_g);
        ProceduraEtapuPolaFormularza prawoPola2 = prawoPolGrida.FirstOrDefault();
        if (prawoPola2 != null && (prawoPola2.widocznosc.ToUpper() == "NIEWIDOCZNE" || prawoPola2.widocznosc.ToUpper() == "INVISIBLE" || prawoPola2.widocznosc.ToUpper() == "NIEWIDOCZNY"))
        {
            col.Visible = false;
        }
        RepositoryItemComboBox obj = new RepositoryItemComboBox();
        col.ColumnEdit = obj;

    }
    catch (Exception error)
    {
        t.Rollback();

    }
}
现在是“TworzFormularz”身体:

public void TworzFormularz()
{
referenceFormularzy=新字典();
Formularz f=脉冲波比公式(krpEtapDlaOsoby.form_id_formularza);
如果(f==null)//sprawdz czy znaleziono公式
{
MessageBox.Show(“Nie znaleziono formularza.”,“”,MessageBoxButtons.OK,MessageBoxIcon.Error);
这个。关闭();
回来
}
FormularzDefinicjaPola[]pola=pulsu.pobierzPolaDlaFormularza(f.fdIdDefinicji);//pobierz pola dla tego formularza
foreach(pola中的FormularzDefinicjaPola pole)//dla wszystkich pól na formularzu
{
List prawaPolFormularza=pulsr.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu,pole.idPola,null);//prawa dostepu
if(pole.typPola.ToUpper()=“编辑”| | pole.typPola.ToUpper()=“备忘录”)
{
TextEdit t=新的TextEdit();
t、 AutoSize=false;
t、 位置=新点(pole.pozycjaX、pole.pozycjaY);
t、 尺寸=新尺寸(pole.szerokosc、pole.wysokosc);
t、 Name=pole.idPola.ToString();
t、 Tag=极点。典型值;
panelControl1.控件。添加(t);
t、 AutoSize=false;
LabelControl标签=新的LabelControl();
label.Text=pole.opisWyswietlany;
label.Name=pole.idPola.ToString();
标签位置=新点(pole.pozycjaX-label.Width-1,pole.pozycjaY);
panelControl1.控件.添加(标签);
label.Location=新点(pole.pozycjaX-label.Width-1,pole.pozycjaY);
panelControl1.AutoSize=false;
label.AutoSize=false;
//奥布卢加海滩酒店
程序a pupola formularza prawoPola=prawaPolFormularza.FirstOrDefault();
如果(prawaPolFormularza.Count>1)
{
Program.logger.Warn(“KorespondencjaWindowForm.TworzFormularz():Znaleziono wiecej jak jedno prawo do pola o definicji:”+pole.idPola+“dla etapu:”+krpEtapDlaOsoby.id_etapu);
}
if(prawoPola!=null&&prawoPola.widocznosc!=null)
{
如果(prawoPola.widocznosc.ToUpper()=“EDYCJA”| prawoPola.widocznosc.ToUpper()=“编辑”| prawoPola.widocznosc.ToUpper()=“可编辑”| prawoPola.widocznosc.ToUpper()=“可编辑”| prawoPola.widocznosc.ToUpper()=“可编辑”)
{
t、 启用=真;
}
else if(prawoPola.widocznosc.ToUpper()=“TYLKO ODCZYT”| prawoPola.widocznosc.ToUpper()=“TYLKO|u ODCZYT”| prawoPola.widocznosc.ToUpper()=“READ”| prawoPola.widocznosc.touper()=“只读”|
{
t、 启用=错误;
}
else if(prawoPola.widocznosc.ToUpper()=“NIEWIDOCZNE”| | prawoPola.widocznosc.ToUpper()=“不可见”)
{
t、 可见=假;
标签可见=假;
}
}
参考公式ZY。添加(t,杆);
}
if(pole.typPola.ToUpper()=“CXGRID”)
{
DataTableDatasetGrida;
PoleFormularza[]WidokDefiniticJigrida=pulsu.pobierzDefinicjeGrida(pole.idPola,krpEtapDlaOsoby.form_id_formularza);//przekazujemy idDefinicjiPola,oraz idFormularza
if(WidokDefiniticJigrida.Count()0)
{
}
grid.DataSource=dataSetGrida;
_formMain.LoadNavigatorImages24x24(参考网格);
gridViewFormularz.Name=pole.idPola.ToString();
//乌斯塔维尼亚格里达。
网格位置=新点(极点pozycjaX、极点pozycjaY);
网格尺寸=新尺寸(pole.szerokosc、pole.wysokosc);
grid.MainView=gridViewFormularz;
gridViewFormularz.InitNewRow
+=GridView1_InitNewRow;
grid.Select();
grid.Anchor=(AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Left);
grid.KeyPress+=grid_KeyPress;
gridViewFormularz.OptionsBehavior.AllowAddRows=
DevExpress.Utils.DefaultBoolean.True;
grid.Width=panelControl1.Width;
gridViewFormularz.options selection.MultiSelect=true;
grid.UseEmbeddedNavigator=true;
panelControl1.Controls.Add(网格);
grid.ForceInitialize();
#utworzenie ColumnEditow地区
foreach(gridViewFormularz.Columns中的GridColumn列)
{
PoleFormularza poleGrida=widokDefinicjiGrida.Where(x=>x.tytul==col.FieldName).FirstOrDefault();
if(poleGrida==null)
{
Program.logger.Error(“TworzFormularz():nie znaleziono definicji pola grid,dla pola o tytule:”+col.FieldName);
持续
}
else if(poleGrida.rodzaj_pola==RodzajPolaEnum.B&&poleGrida.lista_wartosci!=null&&poleGrida.lista_wartosci.Length>0)
{
//TODO:操作程序按钮
持续
}
else if(poleGrida.rodzaj_pola==RodzajPolaEnum.B&&(poleGrida.lista_wartosci==null | | | poleGrida.lista_wartosci.Length==0))
{
列表prawoPolGrida=puls.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu,pole.idPola,poleGrida.id_pola_g);
程序etapupolaformularza prawoPola2=prawoPolGrida.FirstOrDefault();
如果(prawoPola2!=null&(prawoPola2.widocznosc.ToUpper()=“NIEWIDOCZNE”| prawoPola2.widocznosc.ToUpper()=“不可见”| prawoPola2.widocznosc.ToUpper()=“NIEWIDOCZNY”)
{
可见=假;
}
RepositoryItemTextEdit obj=新R
public KorespondencjaWindowForm(KorespondencjaEtapDlaOsoby _krpEtapDlaOsoby, ImpulsRepository _impuls, FormMain formMain = null, KorespondencjaMDIForm mdiParentForm = null)
{
    _formMain = formMain;
    impuls = _impuls;
    InitializeComponent();
    gridViewFormularz.CellValueChanged += GridView1_CellValueChanged1;

    krpEtapDlaOsoby = _krpEtapDlaOsoby;
    UzupelnijNaglowekISzczegoly(_krpEtapDlaOsoby.id_korespondencji);
    TworzFormularz();
    TworzFormularzKlientow();
    PobierzZalaczniki();
    DopasujLayoutGrida();
    _mdiFormParent = mdiParentForm;
    DevExpress.Skins.SkinManager.EnableFormSkins();
    DevExpress.LookAndFeel.LookAndFeelHelper.ForceDefaultLookAndFeelChanged();
    SkinManager.EnableMdiFormSkins();
    gridViewFormularz.PopupMenuShowing += GridView1_PopupMenuShowing;
    try
    {
        impuls.WczytajUstawieniaKolumnGrida(int.Parse(_formMain.podstawowyNrEwidencyjnyOsobyZalogowanej.ToString()), int.Parse(gridViewFormularz.Name), null, ref gridViewFormularz);
    }
    catch (Exception error)
    {
        Program.logger.Error("KorespondencjaWindowForm.WczytajUstawieniaKolumnGrida():" + error.Message);
    }
  gridViewKlienci.CustomColumnDisplayText += GridViewKlienci_CustomColumnDisplayText;
  //  repositoryItemLookUpEditTypAdresu.CustomDisplayText += RepositoryItemLookUpEditTypAdresu_CustomDisplayText;
    listaHistorii= impuls.pobierzHistorieKorespondencji(krpEtapDlaOsoby.id_korespondencji);
    bindingSourceHistoria.DataSource = listaHistorii;
    gridViewKlienci.RowCellStyle += gridViewKlienci_RowCellStyle;

}
public void TworzFormularz()
{

    referencjeFormularzy = new Dictionary<dynamic, FormularzDefinicjaPola>();
    Formularz f = impuls.pobierzFormularz(krpEtapDlaOsoby.form_id_formularza);
    if (f == null) //sprawdz czy znaleziono formularz
    {
        MessageBox.Show("Nie znaleziono formularza.", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
        this.Close();
        return;
    }
    FormularzDefinicjaPola[] pola = impuls.pobierzPolaDlaFormularza(f.fdIdDefinicji); // pobierz pola dla tego formularza

    foreach (FormularzDefinicjaPola pole in pola) // dla wszystkich pól na formularzu
    {
        List<ProceduraEtapuPolaFormularza> prawaPolFormularza = impuls.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu, pole.idPola, null); //prawa dostepu

        if (pole.typPola.ToUpper() == "EDIT" || pole.typPola.ToUpper() == "MEMO")
        {

            TextEdit t = new TextEdit();
            t.AutoSize = false;
            t.Location = new Point(pole.pozycjaX, pole.pozycjaY);
            t.Size = new Size(pole.szerokosc, pole.wysokosc);
            t.Name = pole.idPola.ToString();
            t.Tag = pole.typDanych;
            panelControl1.Controls.Add(t);
            t.AutoSize = false;
            LabelControl label = new LabelControl();
            label.Text = pole.opisWyswietlany;
            label.Name = pole.idPola.ToString();
            label.Location = new Point(pole.pozycjaX-label.Width-1 , pole.pozycjaY);
            panelControl1.Controls.Add(label);
            label.Location = new Point(pole.pozycjaX - label.Width-1 , pole.pozycjaY);
            panelControl1.AutoSize = false;
            label.AutoSize = false;
            //obsluga praw do pola
            ProceduraEtapuPolaFormularza prawoPola = prawaPolFormularza.FirstOrDefault();
            if (prawaPolFormularza.Count > 1)
            {
                Program.logger.Warn("KorespondencjaWindowForm.TworzFormularz(): Znaleziono wiecej jak jedno prawo do pola o definicji: " + pole.idPola + " dla etapu: " + krpEtapDlaOsoby.id_etapu);
            }
            if (prawoPola != null && prawoPola.widocznosc!=null)
            {
                if (prawoPola.widocznosc.ToUpper() == "EDYCJA" || prawoPola.widocznosc.ToUpper() == "EDIT" || prawoPola.widocznosc.ToUpper() == "EDITABLE" || prawoPola.widocznosc.ToUpper() == "EDIT ABLE" || prawoPola.widocznosc.ToUpper() == "EDIT_ABLE")
                {
                    t.Enabled = true;
                }
                else if (prawoPola.widocznosc.ToUpper() == "TYLKO ODCZYT" || prawoPola.widocznosc.ToUpper() == "TYLKO_ODCZYT" || prawoPola.widocznosc.ToUpper() == "READ" || prawoPola.widocznosc.ToUpper() == "READ_ONLY" || prawoPola.widocznosc.ToUpper() == "READ ONLY")
                {
                    t.Enabled = false;

                }
                else if (prawoPola.widocznosc.ToUpper() == "NIEWIDOCZNE" || prawoPola.widocznosc.ToUpper() == "INVISIBLE")
                {
                    t.Visible = false;
                    label.Visible = false;
                }
            }

            referencjeFormularzy.Add(t, pole);

        }
        if (pole.typPola.ToUpper() == "CXGRID")
        {
            DataTable dataSetGrida;
            PoleFormularza[] widokDefinicjiGrida = impuls.pobierzDefinicjeGrida(pole.idPola,krpEtapDlaOsoby.form_id_formularza); // przekazujemy idDefinicjiPola, oraz idFormularza
            if (widokDefinicjiGrida.Count() <= 0)
            {
                Program.logger.Error("TworzFormularz(): Nie wczytano kolumn dla grida o id_definicji: " + pole.idPola.ToString());
                continue;
            }
            //tworzenie data source dla grida
            dataSetGrida = UtworzDataTableDlaGrida(widokDefinicjiGrida,pole.idPola, true);
            gridViewFormularz.CustomUnboundColumnData += GridView1_CustomUnboundColumnData;

            PoleFormularza[] widokWartosciGrida = impuls.pobierzWidokGrida(pole.idPola, krpEtapDlaOsoby.form_id_formularza);
            //jezeli sa wiersze...
            if (widokWartosciGrida.Count() > 0)
            {
            }
            grid.DataSource = dataSetGrida;
            _formMain.LoadNavigatorImages24x24(ref grid);
            gridViewFormularz.Name = pole.idPola.ToString();
            //ustawienia grida.
            grid.Location = new Point(pole.pozycjaX, pole.pozycjaY);
            grid.Size = new Size(pole.szerokosc, pole.wysokosc);
            grid.MainView = gridViewFormularz;
            gridViewFormularz.InitNewRow
            += GridView1_InitNewRow;
            grid.Select();
            grid.Anchor = (AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Left);
            grid.KeyPress += Grid_KeyPress;
            gridViewFormularz.OptionsBehavior.AllowAddRows =
              DevExpress.Utils.DefaultBoolean.True;
            grid.Width = panelControl1.Width;
            gridViewFormularz.OptionsSelection.MultiSelect = true;
            grid.UseEmbeddedNavigator = true;
            panelControl1.Controls.Add(grid);
            grid.ForceInitialize();
            #region utworzenie ColumnEditow
            foreach (GridColumn col in gridViewFormularz.Columns)
            {
                PoleFormularza poleGrida = widokDefinicjiGrida.Where(x => x.tytul == col.FieldName).FirstOrDefault();
                if (poleGrida == null)
                {
                    Program.logger.Error("TworzFormularz() : nie znaleziono definicji pola grid, dla pola o tytule: " + col.FieldName);
                    continue;
                }
                else if (poleGrida.rodzaj_pola == RodzajPolaEnum.B && poleGrida.lista_wartosci != null && poleGrida.lista_wartosci.Length > 0)
                {
                    //TODO: oprogramuj button
                    continue;
                }
                else if (poleGrida.rodzaj_pola == RodzajPolaEnum.B && (poleGrida.lista_wartosci == null || poleGrida.lista_wartosci.Length == 0))
                {
                    List<ProceduraEtapuPolaFormularza> prawoPolGrida = impuls.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu, pole.idPola, poleGrida.id_pola_g);
                    ProceduraEtapuPolaFormularza prawoPola2 = prawoPolGrida.FirstOrDefault();
                    if (prawoPola2!=null && (prawoPola2.widocznosc.ToUpper()=="NIEWIDOCZNE" || prawoPola2.widocznosc.ToUpper() == "INVISIBLE" || prawoPola2.widocznosc.ToUpper() == "NIEWIDOCZNY"))
                    {
                        col.Visible = false;
                    }

                    RepositoryItemTextEdit obj = new RepositoryItemTextEdit();
                    col.ColumnEdit = obj;
                }
                else
                {
                    using (var t = impuls.connection.BeginTransaction())
                    {
                        try
                        {

                            List<ProceduraEtapuPolaFormularza> prawoPolGrida = impuls.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu, pole.idPola, poleGrida.id_pola_g);
                            ProceduraEtapuPolaFormularza prawoPola2 = prawoPolGrida.FirstOrDefault();
                            if (prawoPola2 != null && (prawoPola2.widocznosc.ToUpper() == "NIEWIDOCZNE" || prawoPola2.widocznosc.ToUpper() == "INVISIBLE" || prawoPola2.widocznosc.ToUpper() == "NIEWIDOCZNY"))
                            {
                              col.Visible = false;
                            }
                            RepositoryItemComboBox obj = new RepositoryItemComboBox();
                            col.ColumnEdit = obj;

                        }
                        catch (Exception error)
                        {
                            t.Rollback();

                        }

                    }

                }
            }
            #endregion
            UzupelijWierszeGrida(ref widokWartosciGrida, ref dataSetGrida);
            UzupelnijEdytoryGrida(ref gridViewFormularz, widokDefinicjiGrida);
            gridViewFormularz.Columns["PolaFormularza"].Visible = false;
            // poczatek inicjalizacji wartosci grida (jeżeli użytkownik coś zmieni, to obsługa dalsza jest w evencie cell changed.
            //jezeli uzytkownik chce dodac nowy wiersz, jego obsluga nastąpi w initNewRowEvent.
            //   impuls.pasteClipboardToGrid(gridView1);

        }
        if (pole.typPola.ToUpper() == "COMBOBOX")
        {
            ComboBoxEdit cbEdit = new ComboBoxEdit();
            cbEdit.Name = pole.idPola.ToString();
            cbEdit.Location = new Point(pole.pozycjaX , pole.pozycjaY);
            cbEdit.Size = new Size(pole.szerokosc, pole.wysokosc);
            if (pole.listaWartosci != null && !pole.listaWartosci.ToUpper().Contains("SELF") && pole.typListy == "D")
            {
                dynamic src = impuls.pobierzSelectDlaGrida(pole.listaWartosci);
                cbEdit.Properties.Items.AddRange(src);
            }
            if (pole.typListy == "S" || pole.typListy == "B" && pole.listaWartosci != null && pole.listaWartosci.Length > 0)
            {
                string[] splity = @pole.listaWartosci.Split('\n');
                cbEdit.Properties.Items.AddRange(splity);
            }
            cbEdit.AutoSize = false;
            panelControl1.Controls.Add(cbEdit);
            cbEdit.Visible = true;
            LabelControl label = new LabelControl();

            label.Text = pole.opisWyswietlany;
            label.Name = pole.idPola.ToString();
            label.Location = new Point(pole.pozycjaX-label.Width-1, pole.pozycjaY);
            panelControl1.Controls.Add(label);
            label.Location = new Point(pole.pozycjaX - label.Width-1 , pole.pozycjaY);
            label.AutoSize = false;

            cbEdit.AutoSize = false;
            //obsluga praw do pola
            ProceduraEtapuPolaFormularza prawoPola = prawaPolFormularza.FirstOrDefault();
            if (prawaPolFormularza.Count > 1)
            {
                Program.logger.Warn("KorespondencjaWindowForm.TworzFormularz(): Znaleziono wiecej jak jedno prawo do pola o definicji: " + pole.idPola + " dla etapu: " + krpEtapDlaOsoby.id_etapu);
            }
            if (prawoPola != null && prawoPola.widocznosc != null)
            {
                if (prawoPola.widocznosc.ToUpper() == "EDYCJA" || prawoPola.widocznosc.ToUpper() == "EDIT" || prawoPola.widocznosc.ToUpper() == "EDITABLE" || prawoPola.widocznosc.ToUpper() == "EDIT ABLE" || prawoPola.widocznosc.ToUpper() == "EDIT_ABLE")
                {
                    cbEdit.Enabled = true;
                }
                else if (prawoPola.widocznosc.ToUpper() == "TYLKO ODCZYT" || prawoPola.widocznosc.ToUpper() == "TYLKO_ODCZYT" || prawoPola.widocznosc.ToUpper() == "READ" || prawoPola.widocznosc.ToUpper() == "READ_ONLY" || prawoPola.widocznosc.ToUpper() == "READ ONLY")
                {
                    cbEdit.Enabled = false;
                }
                else if (prawoPola.widocznosc.ToUpper() == "NIEWIDOCZNE" || prawoPola.widocznosc.ToUpper() == "INVISIBLE")
                {
                    cbEdit.Visible = false;
                    label.Visible = false;
                }
            }

            referencjeFormularzy.Add(cbEdit, pole);
        }

    }


    SimpleButton button = new SimpleButton();
    button.Text = "Zapisz";
    button.Click += Button_Click;
    button.Location = new Point(grid.Location.X , grid.Location.Y - 25);
    panelControl1.Controls.Add(button);
    SimpleButton buttonWyslij = new SimpleButton();
    buttonWyslij.Text = "Wyślij";


    panelControl1.ResumeLayout();
    buttonWyslij.Location = new Point(button.Location.X + button.Width + 10, button.Location.Y);
    panelControl1.PerformLayout();
    panelControl1.Controls.Add(buttonWyslij);
    buttonWyslij.Click += ButtonWyslij_Click;
    pobierzWartosciPol(pola);
}
using (var t = impuls.connection.BeginTransaction())
{
    try
    {
        List<ProceduraEtapuPolaFormularza> prawoPolGrida = impuls.pobierzPrawaPolFormularza(krpEtapDlaOsoby.pe_id_etapu, pole.idPola, poleGrida.id_pola_g);
        ProceduraEtapuPolaFormularza prawoPola2 = prawoPolGrida.FirstOrDefault();
        if (prawoPola2 != null && (prawoPola2.widocznosc.ToUpper() == "NIEWIDOCZNE" || prawoPola2.widocznosc.ToUpper() == "INVISIBLE" || prawoPola2.widocznosc.ToUpper() == "NIEWIDOCZNY"))
        {
            col.Visible = false;
        }
        RepositoryItemComboBox obj = new RepositoryItemComboBox();
        col.ColumnEdit = obj;

    }
    catch (Exception error)
    {
        t.Rollback();

    }
}