比如。从数据库读取了3列显示在datagridview1里面,分别是 工况编号、工况描述、测试状态。 我需要把 测试状态 这一列弄成按钮,该列的值还是从数据库读出来的。 大侠们帮帮忙,在线等!
ps:是winform里的哦!

解决方案 »

  1.   

    测试状态我觉得在datagridview中设置成checkbox最好。
      

  2.   

    方法是:datagridview->编辑列->所选择字段的属性ColumnType设置为:DataGridViewCheckBoxColumn
    ,当然你要设置成按钮就选择:DataGridViewButtonColumn
      

  3.   

    datagridview里是空的, 直接显示数据库里的表
      

  4.   

    那就在代码中控制,也是这个ColumnType属性
      

  5.   


    DataGridVeiwButtonColumn column= new DataGridVeiwButtonColumn ();
    column.Name = "TEST";
    column.DataPropertyName = "DbFieldName";
    this.myDgv.Columns.Add(column);绑定的数据源sql文如下:注意DbFieldName必须一致select '更新' as DbField from table;
      

  6.   

    select '更新' as DbFieldName from table;
      

  7.   

    先点编列
    然后在设计中找到把ColumnType属性改成 DataGridViewButtonColumn
      

  8.   

    cn = new SqlConnection("server=" + 本地设置.ip + ";database=Gangji;uid=" + 本地设置.uid + ";pwd=" + 本地设置.pwd + ";Connection Timeout=0");
             cn.Open();
             ds = new DataSet();
             SqlCommand cmd = new SqlCommand("select 工况编号,工况描述 from Ceshi_Standard_Dynamic_Test", cn);  //Tjport_Standard_Dynamic_Test
             da = new SqlDataAdapter(cmd);
             builder = new SqlCommandBuilder(da);
             dataGridView1.RowHeadersVisible = false;
             dataGridView1.AllowUserToAddRows = false;
             dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
             dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
             dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
             da.Fill(ds, "Ceshi_Standard_Dynamic_Test");
             //ds.Tables["gongkuanglist"].ColumnChanged += new DataColumnChangeEventHandler(ds_ColumnChanged);
             //ds.Tables["gongkuanglist"].RowDeleted += new DataRowChangeEventHandler(ds_RowDeleted);
             this.dataGridView1.DataSource = ds.Tables[0].DefaultView;         DataGridViewButtonColumn Column1 = new DataGridViewButtonColumn();
             Column1.HeaderText = str;
             Column1.DataPropertyName = str;
             Column1.UseColumnTextForButtonValue = true;
             this.dataGridView1.Columns.Add(Column1);
      

  9.   

    帮我看看,我首先从数据库读取了工况编号、工况描述两列并显示到datagridview1。然后用代码添加进去1列button, 准备按照9楼的方法,从数据库读取 测试状态,将该列的文本显示在button上,后面不知道该怎么写了,谁能帮我看看!
    cn = new SqlConnection("server=" + 本地设置.ip + ";database=Gangji;uid=" + 本地设置.uid + ";pwd=" + 本地设置.pwd + ";Connection Timeout=0");
             cn.Open();
             ds = new DataSet();
             SqlCommand cmd = new SqlCommand("select 工况编号,工况描述 from Ceshi_Standard_Dynamic_Test", cn);  //Tjport_Standard_Dynamic_Test
             da = new SqlDataAdapter(cmd);
             builder = new SqlCommandBuilder(da);
             dataGridView1.RowHeadersVisible = false;
             dataGridView1.AllowUserToAddRows = false;
             dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
             dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
             dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
             da.Fill(ds, "Ceshi_Standard_Dynamic_Test");
             //ds.Tables["gongkuanglist"].ColumnChanged += new DataColumnChangeEventHandler(ds_ColumnChanged);
             //ds.Tables["gongkuanglist"].RowDeleted += new DataRowChangeEventHandler(ds_RowDeleted);
             this.dataGridView1.DataSource = ds.Tables[0].DefaultView;         DataGridViewButtonColumn Column1 = new DataGridViewButtonColumn();
             Column1.HeaderText = str;
             Column1.DataPropertyName = str;
             Column1.UseColumnTextForButtonValue = true;
             this.dataGridView1.Columns.Add(Column1);
             SqlCommand cmd1 = new SqlCommand("select 测试状态 as " + str + " from Ceshi_Standard_Dynamic_Test", cn);
      

  10.   

    帮我看看,我首先从数据库读取了工况编号、工况描述两列并显示到datagridview1。然后用代码添加进去1列button, 准备按照9楼的方法,从数据库读取 测试状态,将该列的文本显示在button上,后面不知道该怎么写了,谁能帮我看看!cn = new SqlConnection("server=" + 本地设置.ip + ";database=Gangji;uid=" + 本地设置.uid + ";pwd=" + 本地设置.pwd + ";Connection Timeout=0");
      cn.Open();
      ds = new DataSet();
      SqlCommand cmd = new SqlCommand("select 工况编号,工况描述 from Ceshi_Standard_Dynamic_Test", cn); //Tjport_Standard_Dynamic_Test
      da = new SqlDataAdapter(cmd);
      builder = new SqlCommandBuilder(da);
      dataGridView1.RowHeadersVisible = false;
      dataGridView1.AllowUserToAddRows = false;
      dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
      dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
      dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
      da.Fill(ds, "Ceshi_Standard_Dynamic_Test");
      //ds.Tables["gongkuanglist"].ColumnChanged += new DataColumnChangeEventHandler(ds_ColumnChanged);
      //ds.Tables["gongkuanglist"].RowDeleted += new DataRowChangeEventHandler(ds_RowDeleted);
      this.dataGridView1.DataSource = ds.Tables[0].DefaultView;  DataGridViewButtonColumn Column1 = new DataGridViewButtonColumn();
      Column1.HeaderText = str;
      Column1.DataPropertyName = str;
      Column1.UseColumnTextForButtonValue = true;
      this.dataGridView1.Columns.Add(Column1);
      SqlCommand cmd1 = new SqlCommand("select 测试状态 as " + str + " from Ceshi_Standard_Dynamic_Test", cn);