C# C:在动态填充组合框方法中添加“选择”项

C# C:在动态填充组合框方法中添加“选择”项,c#,methods,combobox,void,C#,Methods,Combobox,Void,我需要在索引0处添加Select,而不知道DataTable列的计数或名称,因为此方法将在DataAccessLayer中使用,并将在以后使用` // ComboBox Fill Method public static void ComboBoxFill(ComboBox cbo, string Query, string cboDisplayMember, string cboValueMember) { con.Open();

我需要在索引0处添加Select,而不知道DataTable列的计数或名称,因为此方法将在DataAccessLayer中使用,并将在以后使用`

// ComboBox Fill Method
public static void ComboBoxFill(ComboBox cbo, string Query, string cboDisplayMember, string cboValueMember)
            {
                con.Open();
                SqlCommand cmd = new SqlCommand(Query, con);
                SqlDataReader dr = cmd.ExecuteReader();
                DataTable dt = new DataTable();
                dt.Load(dr);
                cbo.DataSource = dt;
                cbo.DisplayMember = cboDisplayMember;
                cbo.ValueMember = cboValueMember;
                cbo.SelectedIndex = 0;
                con.Close();
            }

只需将这一行放在ComboBoxFill函数中

public static void ComboBoxFill(ComboBox cbo, string Query, string cboDisplayMember, string cboValueMember)
            {
                con.Open();
                SqlCommand cmd = new SqlCommand(Query, con);
                SqlDataReader dr = cmd.ExecuteReader();
                DataTable dt = new DataTable();
                dt.Load(dr);
                cbo.DataSource = dt;

                DataRow newRow = dt.NewRow();
                newRow[0] = "Select";
                dt.Rows.InsertAt(newRow, 0);

                cbo.DisplayMember = cboDisplayMember;
                cbo.ValueMember = cboValueMember;
                cbo.SelectedIndex = 0;
                con.Close();
            }

它将在位置0添加Select

我已通过以下代码解决了此问题。 谢谢大家

     public static void ComboBoxFill(ComboBox cbo, string Query, string cboDisplayMember, string cboValueMember)
    {
        con.Open();
        SqlCommand cmd = new SqlCommand(Query, con);
        SqlDataReader dr = cmd.ExecuteReader();
        DataTable dt = new DataTable();
        dt.Load(dr);
        DataRow drow = dt.NewRow();
        for (int i = 0; i < dt.Columns.Count ; i++)
        {
            if (dt.Columns[i].ColumnName == cboDisplayMember)
            {
                drow[i] = "Select";
            }
            else if (dt.Columns[i].ColumnName == cboValueMember)
            {
                drow[i] = 0;
            }
            else
            {
                drow[i] = null;
            }
        }

        dt.Rows.InsertAt(drow, 0);

        cbo.DataSource = dt;
        cbo.DisplayMember = cboDisplayMember;
        cbo.ValueMember = cboValueMember;
        cbo.SelectedIndex = 0;
        con.Close();
    }

DataTable dt1=DataTablecbo.DataSource;int columns=dt.columns.Count;int rows=dt.rows.Count;声明后如何使用int列和行?您的帖子有点不清楚。我不确定您是询问如何选择组合框,还是询问如何更新/插入数据。所以我假设你想改变数据。更改数据的正确方法是修改DataTable。您还说您不知道列数或计数,所以我从cbo获得了列数和计数。谢谢,问题已经解决,我添加了解决方案错误:其他信息:当DataSource属性设置为Showing error时无法修改Items集合,因为未知的列名和列数。但是它已经被ForThanks解决了,它已经解决了,我已经添加了解决方案