问题描述
我想在datagridview上加字段但程序来是报错怎么回事呀?我的代码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceJYMaterMangerSystem{publicpartialclassForm2:Form{SqlDataAdapterdapd;//SqlDataAdapterdast;//DataSetdsPd,dsStyle;datadt=newdata();publicForm2(){dapd=dt.Da("select*formJY_Material");InitializeComponent();}privatevoidForm2_Load(objectsender,EventArgse){SqlCommandBuildercm=newSqlCommandBuilder(dapd);dataGridView1.DataMember="JY_Material";dgvhead();}voiddgvhead(){dataGridView1.Columns[0].HeaderText="编号";dataGridView1.Columns[1].HeaderText="物料id";dataGridView1.Columns[2].HeaderText="物料编码";//dataGridView1.Columns[0].ReadOnly=true;dataGridView1.Columns[3].HeaderText="名称";dataGridView1.Columns[4].HeaderText="规格";dataGridView1.Columns[5].HeaderText="颜色";dataGridView1.Columns[6].HeaderText="单位";dataGridView1.Columns[7].HeaderText="生产厂家";dataGridView1.Columns[8].DefaultCellStyle.Format="C";dataGridView1.Columns[8].HeaderText="备注";//dataGridView1.SelectionMode=DataGridViewSelectionMode.FullRowSelect;}}}
解决方案
解决方案二:
直接在aspx文件里面设就可以了,何必在后台C#程序里设呢?
解决方案三:
小心的问一句你这些columns初始化了吗?如果你是要显示DataTable中的数据DataPropertyName这个你也没有添加还有columns的宽度,是否只读,是否可见都没有设置!最好把你dgv的自动添加columns的属性设置为false;
解决方案四:
引用1楼cheng_feng001的回复:
直接在aspx文件里面设就可以了,何必在后台C#程序里设呢?
我也这么认为
解决方案五:
噢,看错了,你那个是WinForm的。它报的什么错,你得说出来呀?你加个断点调试一下,就知道是在哪个地方错了。
解决方案六:
看异常信息,就知道哪里错了。
解决方案七:
publicForm2(){dapd=dt.Da("select*formJY_Material");InitializeComponent();}
应改为:publicForm2(){InitializeComponent();dapd=dt.Da("select*formJY_Material");}
应该先初始化窗体中的控件,先执行你的操作,不然控件还没有初始化,你就对其进行操作,当然就会出错了
解决方案八:
6楼的强悍。。。