【问题标题】:ComboBox control inside DataRepeater control does not correctly filled by data from database (MySQL server)DataRepeater 控件中的 ComboBox 控件未正确填充数据库中的数据(MySQL 服务器)
【发布时间】: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


    【解决方案1】:

    试试这个:

            ListItem li = new ListItem(row["masa"]);
            Masa1_wych_cbx.Items.Add(li);
    

    【讨论】:

      猜你喜欢
      • 2010-11-09
      • 1970-01-01
      • 2013-02-16
      • 1970-01-01
      • 2021-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多