【发布时间】:2013-11-29 12:37:09
【问题描述】:
我有一个 winform 包含一个 Datarepeater 控件和一个嵌套的 ComboBox 控件。此外,我将下一个 ComboBox 控件直接放置在 WinForm 主体中。我使用以下方法将数据从我的数据库插入到组合框。这些方法在 Load 事件中被调用。最后,嵌套在 DR 控件中的 ComboBox 不包含任何数据,但 WinForm 中的 ComboBox 正确填充了数据库中的数据。你介意有人告诉我为什么吗?
-
对于嵌套在 DataRepeater 控件中的 Combobox 控件:
private void laduj_Masa_wych_cbx() { try { da1_przych = new MySqlDataAdapter(query_test, connection); DataTable ddtt = new DataTable(); da1_przych.Fill(ddtt); foreach (DataRow row in ddtt.Rows) { Masa_wych_cbx.Items.Add(row["masa"]); } } catch (Exception ee) { MessageBox.Show(ee.Message); } } -
对于直接放在DataRepeater控件中的ComboBox控件:
private void laduj_Masa1_wych_cbx() { try { da1_przych = new MySqlDataAdapter(query_test, connection); DataTable ddtt = new DataTable(); da1_przych.Fill(ddtt); foreach (DataRow row in ddtt.Rows) { Masa1_wych_cbx.Items.Add(row["masa"]); } } catch (Exception ee) { MessageBox.Show(ee.Message); } }
结果嵌套在 DR 控件中的 ComboBox 不包含任何数据,但由 WinForm 管理的 ComboBox 包含来自数据库的正确列表。我的第二个方法如下所示。我用下面显示的两种方法更改了上述两种方法。在这种情况下,两个 ComboBox 控件都正确填充了数据。
-
对于嵌套在 DataRepeater 控件中的 Combobox 控件:
private void laduj_Masa_wych_cbx() { this.Masa_wych_cbx.Items.Add("0"); this.Masa_wych_cbx.Items.Add("50"); this.Masa_wych_cbx.Items.Add("100"); this.Masa_wych_cbx.Items.Add("130"); this.Masa_wych_cbx.Items.Add("350"); this.Masa_wych_cbx.Items.Add("500"); this.Masa_wych_cbx.Items.Add("1000"); this.Masa_wych_cbx.Items.Add("1500"); this.Masa_wych_cbx.Items.Add("2000"); } -
对于直接放在DataRepeater控件中的ComboBox控件:
private void laduj_Masa1_wych_cbx() { this.Masa1_wych_cbx.Items.Add("0"); this.Masa1_wych_cbx.Items.Add("50"); this.Masa1_wych_cbx.Items.Add("100"); this.Masa1_wych_cbx.Items.Add("130"); this.Masa1_wych_cbx.Items.Add("350"); this.Masa1_wych_cbx.Items.Add("500"); this.Masa1_wych_cbx.Items.Add("1000"); this.Masa1_wych_cbx.Items.Add("1500"); this.Masa1_wych_cbx.Items.Add("2000"); }
不幸的是,我需要动态地将数据填充到 ComboBoxes 中,但它在 DataRepeater 控件中不起作用 - 如何修复此状态?
【问题讨论】:
标签: c# mysql winforms combobox datareader