DataGridViewComboColumn从数据库填充数据

时间:2017-11-02 19:47:41

标签: c#

我使用下面的代码在datagridview的combocolumn中加载数据,但我不想要的第一个描述列请告诉我如何从datagridview中删除第一个描述列

private void Form1_Load(object sender, EventArgs e)
{


    dataGridView1.DataSource = loadData();

    fillCombo();

}

private void fillCombo()
{

    DataGridViewColumnCollection columns = dataGridView1.Columns;
    DataGridViewTextBoxColumn Text = new DataGridViewTextBoxColumn();

    Text.HeaderText = "ITEM";
    Text.Name = "ITEM";
    columns.Add(Text);

    DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
    combo.HeaderText = "LOCATION";
    combo.Name = "combo";
    combo.DisplayMember = "LOCATION";
    combo.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;
    ArrayList row = new ArrayList();

    foreach (DataRow dr in dt.Rows)
    {
        row.Add(dr["LOCATION"].ToString());

    }

    combo.Items.AddRange(row.ToArray());

    dataGridView1.Columns.Add(combo);
}

private DataTable loadData()
{

    SqlDataAdapter adapter = new SqlDataAdapter();
    SqlCommand cmd;
    DataSet ds = new DataSet();

    string sql = "Select * From Table1";
    cmd = new SqlCommand(sql, con);
    adapter.SelectCommand = cmd;
    adapter.Fill(ds);

    dt = ds.Tables[0];

    return dt;

}

enter image description here

2 个答案:

答案 0 :(得分:0)

在这样的情况下选择*不是一个好习惯,它使架构更改更容易破坏您的应用程序。我最好的建议是选择项目和位置而不是*。这意味着只有项目和位置会显示在您的网格中。

答案 1 :(得分:0)

  

Method1

DataGridTableStyle ts = new DataGridTableStyle();

private void deleteColumn()  
{  

   ts.MappingName = dataGrid1.DataMember;  


   dataGrid1.TableStyles.Add(ts);  


   dataGrid1.TableStyles[0].GridColumnStyles.RemoveAt(0);  
}  
  

Method2

gridview.Columns["ColumnName"].Visible = false;