基于其他listbox c#数据库在listbox中生成结果

4dc9hkyq  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(330)

我的数据库里有两个不同的标签。一个是所有的俱乐部,一个是所有的球员。表1 idclubs,name,champions,已建立的表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,然后在另一个表中查找,在那里他显示了那家俱乐部的球员。如果有人能帮我这个或链接到其他职位我真的很感激。

6ioyuze2

6ioyuze21#

你的问题是罪魁祸首

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

更新:
您应该在listbox中添加属性而不是对象
添加此

listboxspelers.Items.Add(spelers.NaamSpeler);

而不是

listboxspelers.Items.Add(spelers);

相关问题