【问题标题】:Fill Combo box from DB with first custom item使用第一个自定义项从数据库填充组合框
【发布时间】:2017-11-13 07:44:53
【问题描述】:

我在 c# windows 表单中有一个组合框,其中填充了来自 SQL DB 的组名称。在插入新数据时,用户选择他/她想要作为父组的任何组名,如果没有选择的新组将是简单的而不是子组。这就是我想要的。

我预期的组合框:

这是我当前的代码

private void fill_combobox(){
             main_class.sqlcmd.CommandText = "SELECT 
            GroupID,GroupName FROM Groups";
            SqlDataReader sqlReader = main_class.sqlcmd.ExecuteReader();
            DataTable dt = new DataTable();
            dt.Columns.Add("GroupID", typeof(int));
            dt.Columns.Add("GroupName", typeof(string));        
            dt.Load(sqlReader);
            parent_group_combobox.ValueMember = "GroupID";
            parent_group_combobox.DisplayMember = "GroupName";                             
            parent_group_combobox.DataSource = dt;                             
            sqlReader.Close();
          }

我预期的代码是这样的

private void fill_combobox(){
             main_class.sqlcmd.CommandText = "SELECT 
            GroupID,GroupName FROM Groups";
            SqlDataReader sqlReader = main_class.sqlcmd.ExecuteReader();
            DataTable dt = new DataTable();
            dt.Columns.Add("GroupID", typeof(int));
            dt.Columns.Add("GroupName", typeof(string));        
            dt.Load(sqlReader);
    parent_group_combobox.Items.Insert(0,"--None--");
            parent_group_combobox.ValueMember = "GroupID";
            parent_group_combobox.DisplayMember = "GroupName";                             
            parent_group_combobox.DataSource = dt;                             
            sqlReader.Close();
          }

【问题讨论】:

  • 为什么不将 None 项添加到您的 dt DataTable 中?

标签: c# sql winforms


【解决方案1】:

您可以在从数据库加载内容之前将“None”添加到 DataTable:

...
dt.Rows.Add(0, "None");
dt.Load(sqlReader);
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多