private void com_cp_SelectedIndexChanged_1(object sender, EventArgs e)
        {
            this.com_bh.DataSource = DCC.SqlDC.SDC.GetTable("select m_ID,m_NO from material where m_ID='" + com_cp.SelectedValue + "'");
            com_bh.DisplayMember = "m_NO";
            com_bh.ValueMember = "m_ID";
            this.dataGridView2.DataSource = DCC.SqlDC.SDC.GetTable("select m_ID,dbo.GetMaterialNameAll(m_ID) as '物料成品' from material where m_NO like '" + com_bh.Text + "%'");        }
我根据COMBOBOX级联在物料表查到2列ID和物料名的基础上,想在GRIDVIEW上手动添加数量,采购金额等等列,并且是可以输入内容的。进行添加保存到采购申请表。该如何实现啊

解决方案 »

  1.   

    实现的方法很多种举个例子,定义一个类,包含字段m_ID,'物料成品',Qty,Amount 等字段,
    然后使用 command.ExecxtReand().read() 一条条赋值给泛型类。dataGridView绑定这个泛型类就行了
      

  2.   

    可以扩展 DataSet ,多加几个字段。然后手动邦定这些字段的值,再给 DataGirdView.修改的话,可以把 textbox 放在 DataGirdView 中
      

  3.   

    动态添加
    DataGridViewTextBoxColumn textBoxColumn=new DataGridViewTextBoxColumn();
                textBoxColumn.Name = "";
                textBoxColumn.DataPropertyName = "";
                textBoxColumn.HeaderText = "";
                textBoxColumn.Width = 150;
                dataGridView1.Columns.Add(textBoxColumn);
      

  4.   

    能添加列了,但是列里不能写入数据啊,我是查到1张表的2列在把例外张表数据用添加列的形式显示
    private void com_cp_SelectedIndexChanged_1(object sender, EventArgs e)
             {
                 this.dataGridView2.Columns.Clear();
                this.com_bh.DataSource = DCC.SqlDC.SDC.GetTable("select m_ID,m_NO from material where m_ID='" + com_cp.SelectedValue + "'");
                com_bh.DisplayMember = "m_NO";
                com_bh.ValueMember = "m_ID";
                this.dataGridView2.DataSource = DCC.SqlDC.SDC.GetTable("select m_ID,dbo.GetMaterialNameAll(m_ID) as '物料成品' from material where m_NO like '" + com_bh.Text + "%'");
                DataGridViewTextBoxColumn mmmm = new DataGridViewTextBoxColumn();
                mmmm.Name = "T_DjNumber";
                mmmm.HeaderText = "单据编号";
                dataGridView2.Columns.Insert(0, mmmm);
                DataGridViewTextBoxColumn n = new DataGridViewTextBoxColumn();
                n.Name = "T_ItemNumber";
                n.HeaderText = "所属项目编号";
                dataGridView2.Columns.Insert(3, n);
                DataGridViewTextBoxColumn c = new DataGridViewTextBoxColumn();
                c.Name = "T_Objective";
                c.HeaderText = "采购目的";
                dataGridView2.Columns.Insert(4, c);
                DataGridViewTextBoxColumn t = new DataGridViewTextBoxColumn();
                t.Name = "T_Quantity";
                t.HeaderText = "产品数量";
                dataGridView2.Columns.Insert(5, t);
                DataGridViewTextBoxColumn m = new DataGridViewTextBoxColumn();
                m.Name = "T_Model";
                m.HeaderText = "所属类型";
                dataGridView2.Columns.Insert(6, m);
                DataGridViewTextBoxColumn k = new DataGridViewTextBoxColumn();
                k.Name = "T_DepotName";
                k.HeaderText = "库位名";
                dataGridView2.Columns.Insert(7, k);
                DataGridViewTextBoxColumn g = new DataGridViewTextBoxColumn();
                g.Name = "T_SupplierName";
                g.HeaderText = "供应商名称";
                dataGridView2.Columns.Insert(8, g);
                DataGridViewTextBoxColumn bz = new DataGridViewTextBoxColumn();
                bz.Name = "T_Re";
                bz.HeaderText = "备注";
                dataGridView2.Columns.Insert(9, bz);
                DataGridViewTextBoxColumn zbr = new DataGridViewTextBoxColumn();
                zbr.Name = "T_Principal";
                zbr.HeaderText = "制表人";
                dataGridView2.Columns.Insert(10,zbr);
                DataGridViewTextBoxColumn zbrq = new DataGridViewTextBoxColumn();
                zbrq.Name = "T_date";
                zbrq.HeaderText = "制表日期";
                dataGridView2.Columns.Insert(11, zbrq);}
    我根据级联查出2列数据在用添加列的方法,但是在单元格里输入了光标移开数据就没了,考虑过2表直接查出来,但是级联好象会抱错啊,现在样子都出来了就是无法象单元格输入数据
      

  5.   

    DataGridView上支持添加自定义列,用SqlCommandBuilder实现保存