嗨,我正在尝试使用数据库中的数据填充动态创建的comboBox,但是它显示了一个异常(对象引用未设置为对象的实例)。我讨厌看。 这里缺少什么? 谢谢所有的帮助! (这里是新手)
private void SetComboBoxItems()
{
foreach (Control control in panelMain.Controls)
{
ComboBox comboBox = control as ComboBox;
try
{
using (MySqlConnection connection = new MySqlConnection(Properties.Settings.Default.connectionString))
{
connection.Open();
MySqlCommand command = new MySqlCommand("SELECT * FROM home.data", connection);
MySqlDataReader dataReader = command.ExecuteReader();
while (dataReader.Read())
{
comboBox.Items.Add((string)dataReader["temp"]);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
答案 0 :(得分:2)
您的问题有点含糊,但我想您可能要遍历panelMain.Controls中的所有控件,然后尝试将它们投射到ComboBox。那些不是ComboBox的东西,我不记得我脑海中的任何东西,都将为null。您无需检查是否为空,但仍会进行数据库调用,而在尝试设置项目时该调用将失败。我建议以下内容:
foreach (Control control in panelMain.Controls)
{
ComboBox comboBox = control as ComboBox;
if(comboBox != null){
try
{
或
foreach (Control control in panelMain.Controls.Where(c => c is ComboBox))