【问题标题】:edit datatable or add combobox c#编辑数据表或添加组合框 C#
【发布时间】:2014-07-14 02:01:09
【问题描述】:

c# windows 窗体中的这段代码用 mysql 数据库的数据填充我的组合框,并且他工作

 conn.Open();
 string query = "SELECT * FROM FRUITS";
 MySqlCommand cmd = new MySqlCommand(query, conn);
 MySqlDataAdapter da = new MySqlDataAdapter(cmd);
 DataTable dt = new DataTable();
 da.Fill(dt);
 comboBox1.DataSource = dt;
 comboBox1.ValueMember = "NAME";
 comboBox1.DisplayMember = "NAME";

但是,我需要以下两种选择之一:

  1. 在组合框的 FIRST POSITION 中添加一行。
  2. 在dataTable的FIRST POSITION中添加一行。

示例:此代码返回给我一个包含值“香蕉”和“苹果”的组合框,但我需要第一个值是“选择一个水果”。

如果我在“da.Fill(dt)”之后使用下一个代码,他会在 dataTable 中添加一行并出现在组合框中,但在“Apple”之后,combobox=(“Banana”,“Apple”,“Select一种水果”)但我需要(“选择一种水果”、“香蕉”、“苹果”)

 dt.Rows.Add("Select One Fruit");

我该怎么做?

【问题讨论】:

    标签: c# mysql winforms combobox


    【解决方案1】:

    在使用 DataSource 属性时,您不能将项目插入到组合框中。您遇到了一个异常:“设置 DataSource 属性时,无法修改 Items 集合。”。 但是,如果您在将数据表设置为数据源之前在 0 索引处添加一个新行,则效果很好

     conn.Open();
     string query = "SELECT * FROM FRUITS";
     MySqlCommand cmd = new MySqlCommand(query, conn);
     MySqlDataAdapter da = new MySqlDataAdapter(cmd);
     DataTable dt = new DataTable();
     da.Fill(dt);
    
    //Add new row
    DataRow row = dt.NewRow();
    row["NAME"] = "Select a fruit";
    dt.Rows.InsertAt(row, 0);
    
    comboBox1.DataSource = dt;
    comboBox1.ValueMember = "NAME";
    comboBox1.DisplayMember = "NAME";
    

    【讨论】:

      【解决方案2】:

      试试看。

      组合框

      combobox1.Items.Insert(0, "Select a fruit");

      数据表

      dt.Rows.InsertAt(row,0);

      【讨论】:

      • 工作,但我只能添加 int32,不能使用字符串“选择水果”
      【解决方案3】:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-05
      • 1970-01-01
      相关资源
      最近更新 更多