组合框没有填满

时间:2013-07-30 19:04:19

标签: c# list combobox using fill

我有这个功能,我用来填充我的组合框但它没有被填满。我也没有收到任何错误。

public List<string> showStudents()
        {
            List<string> list = new List<string>();
                string rollno;
                command = connection.CreateCommand(); //command and connection have been initialized earlier..
                command.CommandText = "select RollNo from student";
            try
            {                    
                connection.Open();                
                SqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {                    
                    rollno = reader["RollNo"].ToString();
                    list.Add(rollno);
                }
                reader.Close();
                return list;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                connection.Close();
            }
        }
    }
}

comboBox.DataSource=showStudents();

可能是什么问题?请帮忙!! 谢谢..

得到了答案.. :)

foreach(string str in showStudent())
{
comboBox.Items.Add(str);
}

2 个答案:

答案 0 :(得分:0)

如果读者返回结果,您应该设置ComboBox的成员“DisplayMember”和“ValueMember”,以告知combox应该使用哪一列用于显示的文本和项目的值。

像这样:

comboBox.DisplayMember = "RollNo"
comboBox.ValueMember= "RollNo"

您可以在设置DataSource后将其正确放置。告诉我们它是否有帮助。

答案 1 :(得分:0)

请参阅此示例示例并尝试使用您的代码

string Sql = "select Company_ID,company_name from JO.dbo.Comp";
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(Sql, conn);
cmd.CommandType = CommandType.Text;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{

     comboBox1.DataSource = ds.Tables[0];
     comboBox1.DataTextField = "company_name";
     comboBox1.DataValueField = "Company_ID";
     comboBox1.DataBind();
     comboBox1.Items.Insert(0, new ListItem("--Select--", "0"));
}