C# 如何在C中从单个select查询填充两个或多个组合框

C# 如何在C中从单个select查询填充两个或多个组合框,c#,C#,我想从一个查询中填充两个组合框,就像只填充第一个组合框一样 这是我的密码: private void loadcourses() { try { using (sqlcon) { sqlcon.Open(); coursecmd = new SqlCommand("SELECT * FROM DegCourses", sqlcon); read

我想从一个查询中填充两个组合框,就像只填充第一个组合框一样

这是我的密码:

private void loadcourses()
{
    try
    {
        using (sqlcon)
        {
            sqlcon.Open();
            coursecmd = new SqlCommand("SELECT * FROM DegCourses", sqlcon);                 
            reader = coursecmd.ExecuteReader();
            if (reader.HasRows)
            {
                while(reader.Read())
                cmbcoursecode.Items.Add(reader.GetString(1));
                cmbcoursedesc.Items.Add(reader.GetString(2));
            }
            reader.Close();
        }                
    }
    catch (Exception) { }
}
当我执行此代码时,它只填充第一个组合框cmbcoursecode,而另一个不填充


您能帮助我吗?

如果您不为while循环指定大括号,那么while的作用域将只是下一个语句。像下面这样改变你的想法

while(reader.Read()) 
{
   cmbcoursecode.Items.Add(reader.GetString(1));
   cmbcoursedesc.Items.Add(reader.GetString(2));
}

如果不为while循环指定大括号,那么while的作用域将只是下一条语句。像下面这样改变你的想法

while(reader.Read()) 
{
   cmbcoursecode.Items.Add(reader.GetString(1));
   cmbcoursedesc.Items.Add(reader.GetString(2));
}

将{}添加到whiler:whilereader.Read{…}而不是whilereader.Read哪一个循环只执行一个操作您错过了while的花括号范围,而只保留到下一个语句,即cmbcoursecode.Items.Addreader.GetString1;将{}添加到whiler:whilereader.Read{…}而不是whilereader.Read哪一个循环只执行一个操作您错过了while的花括号范围,而只保留到下一个语句,即cmbcoursecode.Items.Addreader.GetString1;