c# - 获取错误“对象引用未设置为对象的实例”填充动态创建的组合框
问题描述
您好我正在尝试使用数据库中的数据填充动态创建的组合框,但它显示异常(对象引用未设置为对象的实例)。我厌倦了寻找。这里缺少什么?感谢所有的帮助!(这里是新手)
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);
}
}
}
解决方案
您的问题有点含糊,但作为一种猜测,我会说您正在迭代 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))
推荐阅读
- node.js - 如何在 discord.js 中修改或删除 URL 中的几个字符
- php - 集中文本无法正常工作(Yii2 框架)
- angular - 角度路由不适用于 www 目录
- app-config - 在 app.config 中,supportedRuntime sku 只定义了允许的最早框架
- java - 用其他数组填充数组
- spring-boot - 传递带有@JsonIgnore 标记的属性时抛出错误
- python - 如何在pyqt5中改变QGraphicsSvgItem的颜色?
- java - 无法使用 Spring Boot 从资源中读取文件
- python - 如何解决jupyter中的变量未定义错误
- javascript - 如何将对象从一个函数解析到另一个函数?