s7mahess
Goto Top

C Sharp Befehl als Parameter an Methode übergeben

Guten Tag,

ich habe folgendes Problem.

Ich habe eine Form mit 9 verschiedenen Listviews. Diese möchte ich nun füllen, möchte aber nicht für jede einzelne eine eigene Methode schreiben.
Also will ich eine allgemeine Methode, der ich übergeben will:

den Mysql string, die Sortierung und welche listview betroffen ist.

Nur habe ich ein Problem mit der Übergabe welche ListView es betrifft, damit ich die Befehle
this.lv_kostenstellen.Items.Clear();
und
this.lv_kostenstellen.Items.Add(lvi_data)
ersetzen kann.

Hat jemand einen Lösungsansazu für das Problem?

public void fill_listview(string squery, string sorderby, hier müsste ein parameter hin)
        {
            IDataReader idrresult;
            
            // Forms leeren 
            this.lv_kostenstellen.Items.Clear();

            idrresult = this.db.mysql_query(squery + sorderby);
            if (idrresult != null) // mysql_query error abfangen
            {
                object obj_row;
                while ((obj_row = this.db.mysql_fetch_row(idrresult)) != null)
                {
                    ListViewItem lvi_data = new ListViewItem(obj_row.ToString()); // ListView Object erstellen
                    // ListView Object füllen
                    for (int i = 1; i < obj_row.Count() ; i++)
                    {
                        lvi_data.SubItems.Add(obj_row[i].ToString());
                    }
                    this.lv_kostenstellen.Items.Add(lvi_data); // Listview mit Werten füllen
                }
            }
            else // (idrresult == null)
            {
                MessageBox.Show(this.db.error);
            }
        }

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
        {            
            switch (this.tabControl1.SelectedIndex)
            {
                case 0:
                    break;
                case 1:
                    fill_listview(  "SELECT                         " +  
                                    "    kostenstelle_id,           " +  
                                    "    kostenstelle_nummer,       " +  
                                    "    kostenstelle_name,         " +  
                                    "    kostenbereich_name,        " +  
                                    "    kostentraeger_nummer,      " +  
                                    "    kostentraeger_name,        " +  
                                    "    kostenstelle_bemerkung     " +  
                                    "FROM                           " +  
                                    "    kostenstelle               " +  
                                    "LEFT JOIN                      " +  
                                    "    kostenbereich              " +  
                                    "USING                          " +  
                                    "(kostenbereich_id)             " +  
                                    "LEFT JOIN                      " +  
                                    "    kostentraeger              " +  
                                    "USING                          " +  
                                    "    (kostentraeger_id)         ",  
                                    "ORDER BY                       " +  
                                    "    kostenstelle_nummer        " +  
                                    "    ASC;                       ", hier müsste ein parameter hin);  
                    //fill_tab_kostenstelle();
                    break;
                default:
                    break;
            }


Vielen dank für Hilfe

Content-ID: 163326

Url: https://administrator.de/contentid/163326

Ausgedruckt am: 22.11.2024 um 12:11 Uhr

SlainteMhath
SlainteMhath 25.03.2011 um 11:23:11 Uhr
Goto Top
Moin,

mit C# im speziellen kenn ich mich jetzt nicht aus, aber kannst Du nicht einfach das Listview objekt aus dem Formular an die Methode übergeben?

etwa
public void fill_listview(string squery, string sorderby, listview lv)

und dann
 fill_listview("blah","blubb",this.lv_kostenstellen)  

lg,
Slainte
s7mahess
s7mahess 25.03.2011 um 12:25:27 Uhr
Goto Top
Danke

das du mir den Wald gezeigt hast,

waren wohl zuviele Bäume davor face-smile


Funktioniert bestens.