基于其他列表框C#数据库的列表框中的结果

时间:2018-12-06 10:04:58

标签: c# mysql listbox

我的数据库中有2个不同的表格。在eredivisie中的所有俱乐部中为1,在所有球员中为1。 表格1 idclubs,名称,冠军,建立 表2 idclubs,idplayer,nameplayer和有关他的更多信息 现在我有2个列表框,在第一个列表框中,我显示了我拥有的所有俱乐部。但是,如果我在第一个列表框中单击一个俱乐部,那么第二个列表框中将显示该俱乐部的球员,因此我该如何做。 据我所提供的代码;

 public List<Spelers> Getspelers(string naam)
    {
        List<Spelers> Result = new List<Spelers>();
        using (MySqlConnection connection = new MySqlConnection(connectionString))
        {
            connection.Open();
            MySqlCommand selectSpelersCommand = new MySqlCommand("select naamspeler from spelers, clubs where clubs.idClubs = @idClubs and spelers.idClubs = @idClubs", connection);
            selectSpelersCommand.Parameters.Add(new MySqlParameter("naam", naam));
            using (var reader = selectSpelersCommand.ExecuteReader())
            {
                while (reader.Read())
                {
                    Spelers speler = new Spelers();
                    speler.IdClubs = reader.GetInt32(0);
                    speler.IdSpelers = reader.GetInt32(1);
                    speler.NaamSpeler = reader.GetString(2);
                    speler.Doelpunten = reader.GetInt32(3);
                    speler.Gelekaarten = reader.GetInt32(4);
                    speler.Rodekaarten = reader.GetInt32(5);
                    Result.Add(speler);
                }
            }
        }
        return Result;
    }

然后在我的主要代码中:

 private void listboxClubs_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        DatabaseManager db = new DatabaseManager();
        List<Spelers> speler = db.Getspelers(listboxClubs.SelectedItem.ToString());
        listboxspelers.Items.Clear();
        foreach (Spelers spelers in speler)
        {
            listboxspelers.Items.Add(spelers);
        }
    }

现在,如果我在第一个框中单击一个俱乐部,它将发送字符串。但是我该如何编码,这样程序才能从该俱乐部查找idClubs,然后在另一张表中查找该俱乐部的球员。如果有人可以帮助我或者链接其他帖子,我将非常感激。

1 个答案:

答案 0 :(得分:0)

您的查询是罪魁祸首

select Spelers.naam from clubs, spelers where clubs.idClubs = @idClubs and spelers.idClubs = @idClubs

通知

select Spelers.naam from 

对sql来说,它只给我naam列数据,您应该使用*或带有“,”分隔的列名列表

select Spelers.naam from clubs, spelers where clubs.idClubs = @idClubs and spelers.idClubs = @idClubs

select Spelers.naam, spelers.idClubs from clubs, spelers where clubs.idClubs = @idClubs and spelers.idClubs = @idClubs

更新

您应该在列表框中添加属性,而不是对象

添加此

listboxspelers.Items.Add(spelers.NaamSpeler);

代替

listboxspelers.Items.Add(spelers);