Avatar billede fhansen82 Mester
01. marts 2015 - 21:38 Der er 4 kommentarer og
1 løsning

Udfyld combobox med data fra database

Jeg har brug for konkret hjælp til at fylde data ind i en DropDownList i en WinForm ved hjælp af en funktion fra en anden klasse. Har en klasse som håndterer databaseforbindelsen samt udlæsning/indlæsning af data fra/til denne. Jeg kan ikke finde ud af hvordan jeg får funktionen til at returnere flere data. Altså, jeg har brug for en array-funktion som returnering. Jeg har noget ufuldstændig (og givetvis forkert) kode som evt. reference. Det eneste jeg har brug for at vide er, hvordan jeg returnerer flere data samlet til "Populate_DropDowns", og fylder dem i en DropDownList:

***Kode start
public string Populate_DropDowns(string Table, string Column_Name)
        {
           
            string query = "SELECT * FROM " + Table;           
            int i = 0;
            string[] x = new string[19];           

            if (this.Open())
            {
                MySqlCommand cmd = new MySqlCommand(query, conn);
                MySqlDataReader dataReader = cmd.ExecuteReader();

                try
                {
                    while (dataReader.Read())
                    {
                        if (i < 1)
                        {
                            x[i] = dataReader[Column_Name].ToString();
                            i++;
                        }
                        else
                        {
                            foreach (string Item in x)
                            {
                                if (dataReader[Column_Name].ToString() == Item)
                                {
                                    break;
                                }
                                else
                                {
                                    x[i] = dataReader[Column_Name].ToString();
                                    i++;
                                }
                            }
                        }
                       
                    }
                    dataReader.Close();
                    if (i == 0)
                    {
                        x[i] = "";
                        MessageBox.Show("No templates found. Please create one.");
                        Form_Modify_Template changeform = new Form_Modify_Template();
                        changeform.ShowDialog();
                    }
                }
                catch { }
                this.Close();

                return x.ToString();
            }
            else
            {
                return x.ToString();
            }
        }
***Kode slut

Har både prøvet at lave "Populate_DropDowns" til et array, og prøvet at lave IList uden held. Hvis en af disse er det rigtige at bruge, har jeg bare ikke forstået hvordan jeg bruger det.

Mvh

Frank
Avatar billede arne_v Ekspert
01. marts 2015 - 21:48 #1
X[] eller List<X> maa vaere det mest oplagte.
Avatar billede fhansen82 Mester
01. marts 2015 - 21:54 #2
Hej arne. Tak for input, men jeg har brug for noget mere konkret, da jeg ikke forstår hvordan jeg får det til at lykkedes. Har bakset med det i flere dage nu, og læst side op og side ned, uden at forstå hvilken proces jeg skal benytte og hvordan det fungerer. Kan du lave et eksempel (du behøver ikke bruge min kode)?

Mvh

Frank
Avatar billede arne_v Ekspert
01. marts 2015 - 22:03 #3
Du har en metode som returnerer en X[] eller Lists<X>.

Saa saetter du combox til at bruge den:

dincombobox.DataSource = dinlist3;
dincombobox.DisplayMember = "navnpaadenpropertysomskalvises";
dincomboboxx.ValueMember = "navnpaadenpropertysomskalbruges";
Avatar billede fhansen82 Mester
02. marts 2015 - 19:38 #4
Hej arne

Beklager, men jeg forstår det stadig ikke :( Jeg har flere comboboxe, som skal kunne bruge samme metode, og hente data ud, ud fra de informationer, som bliver tildelt metoden. Jeg er desværre blank på hvordan din løsning tilføres i den kode jeg i forvejen har udarbejdet. Min programmeringskundskaber er desværre kun basale, så forklar meget gerne hvordan det foregår.

Mvh

Frank
Avatar billede fhansen82 Mester
17. marts 2015 - 16:37 #5
Jeg fik selv løst problemet ved at benytte arrays. Tak for forsøget Arne :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester