【问题标题】:C# with SQL: Populating multiple comboboxes each with different columns of same table使用 SQL 的 C#:填充多个组合框,每个组合框具有同一个表的不同列
【发布时间】:2017-09-27 14:14:00
【问题描述】:

如标题中所述,我希望能在使用同一张表的不同列填充组合框方面提供一些帮助

我没有实际的源代码,但我能够用类似的东西填充一个组合框

SqlDataTable dt = new SqlDataTable();
SqlCommand comm = new SqlCommand(query, conn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = comm;
da.Fill(dt);
myCMB.DataSource = dt;
myCMB.DisplayMember = "display";
myCMB.ValueMember = "value;

但我有 5 个组合框,我不想为此重复相同的代码块 5 次。所以我环顾四周,找到了一些答案,包括将数据源更改为绑定源,如下所示:

myCMB.DataSource = new BindingSource(da, "Column_Name");

但这样做会用指定列的第一项的每个字母填充组合框(即,如果“Column_Name”中的第一项是 ABCD,我的组合框选项将是 A、B、C、D)

所以,我尝试寻找更多答案,但找不到任何答案。有没有更有效的方法来填充我的组合框,还是我真的必须为每个组合框重复基本上相同的代码行?如果有人可以提供帮助,将不胜感激。

【问题讨论】:

  • 你不能像myCMB.DataSource = dt; myCMB.DisplayMember = "col1"; myCMB.ValueMember = "col2"; myotherCMB.DataSource = dt; myotherCMB.DisplayMember = "col3"; myotherCMB.ValueMember = "col4";那样做吗
  • 当你说“同一张表的不同列”时,是指datatable或sql表。
  • 抱歉回复晚了,但我要感谢@ChetanRanpariya 给我一个正确的答案。不过,我不知道如何将您的评论标记为官方答案。

标签: c# sql sql-server combobox sqldataadapter


【解决方案1】:

使用数据表的副本:

SqlDataTable dt = new SqlDataTable();
SqlCommand comm = new SqlCommand(query, conn);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = comm;
da.Fill(dt);

myCMB.DataSource = dt.Copy();


myCMB.DisplayMember = "display";
myCMB.ValueMember = "value;

【讨论】:

    【解决方案2】:

    试试这个:

    DataTable dt = new DataTable();
    dt.Columns.Add("Value");
    dt.Columns.Add("Display");
    
    string query = @"SELECT ID AS ID, Description AS CODE FROM [Tender] ORDER BY ID";
    SqlDataReader sqlReader = new SqlCommand(query, DB.SQLConnection).ExecuteReader();
    
    while (sqlReader.Read())
    {
        if (!string.IsNullOrEmpty(sqlReader["CODE"].ToString()))
            dt.Rows.Add(sqlReader["ID"].ToString(), sqlReader["CODE"].ToString());
    }
    
    cbPayment1.DisplayMember = "display";
    cbPayment1.ValueMember = "value";
    cbPayment1.DataSource = dt;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-04
      • 2017-05-27
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多