已经指定了 DataGridView中列集合的列名 如:AAA,BBB,CCC 现在有个DataTable ,列名:A1,B1,C1 分别对应 DataGridView中列AAA,BBB,CCC 请问怎么把DataTable数据 正确的绑定在DataGridView中?

解决方案 »

  1.   

    AAA,BBB,CCC 只是headerText吧...?
      

  2.   

    DataGridView 中Columns中有属性,可以设置字段名称,显示名称,宽度等等。 自己编程设置下就行了。设计状态也可以,不过sql要写死。
      

  3.   

    dataGridView1.Columns["AAA"].DataPropertyName = "A1";
      

  4.   

    注意 AAA 是列的name 而不是headerText
      

  5.   

    其中:DataPropertyName 对应你要绑定的DataTable的列名。this.GV_ColumnInfo.AutoGenerateColumns = false;
    this.GV_ColumnInfo.DataSource =你要绑定的dt;                DataGridViewColumn fieldNameColumn = new DataGridViewTextBoxColumn();
                    fieldNameColumn.HeaderText = "field_name";
                    fieldNameColumn.DataPropertyName = "field-name";
                    this.GV_ColumnInfo.Columns.Add(fieldNameColumn);                DataGridViewColumn idColumn = new DataGridViewTextBoxColumn();
                    idColumn.HeaderText = "id";
                    idColumn.DataPropertyName = "id";
                    this.GV_ColumnInfo.Columns.Add(idColumn);                DataGridViewColumn identifierColumn = new DataGridViewTextBoxColumn();
                    identifierColumn.HeaderText = "identifier";
                    identifierColumn.DataPropertyName = "identifier";
                    this.GV_ColumnInfo.Columns.Add(identifierColumn);                //下拉列表绑定时候,DataPropertyName和ValueMember做对比,
                    DataGridViewComboBoxColumn typeColumn = new DataGridViewComboBoxColumn();
                    typeColumn.DataSource = GetComBoxDataSource();
                    typeColumn.Width = 200;
                    typeColumn.DataPropertyName = "type";
                    typeColumn.DisplayMember = "Text";
                    typeColumn.ValueMember = "Values";
                    typeColumn.HeaderText = "type";
                    //typeColumn = ComboBoxStyle.DropDownList;
                    this.GV_ColumnInfo.Columns.Add(typeColumn);                DataGridViewColumn lengthColumn = new DataGridViewTextBoxColumn();
                    lengthColumn.HeaderText = "length";
                    lengthColumn.DataPropertyName = "length";
                    this.GV_ColumnInfo.Columns.Add(lengthColumn);