c#中datagridview绑定datatable

当datatable绑定后会在datagridview中增加datatable的字段,在我改变字段后相应的再后面添加一行啊!下面是我的代码,每次点击鼠标后总是在datagridview原行字段中改变一个值,而不是重新生成一行,请各位大侠指教一下!
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text== "" || textBox5.Text== "" || textBox6.Text =="" || textBox8.Text == "")
{
MessageBox.Show("炮孔号、孔口坐标、样品品味不能为空!", "提示", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
else
{
DataTable pk = new DataTable();
pk.Columns.Add("炮孔号");
pk.Columns.Add("炮孔深度");
pk.Columns.Add("炮孔直径");
pk.Columns.Add("炮孔倾角");
pk.Columns.Add("孔口坐标X");
pk.Columns.Add("孔口坐标Y");
pk.Columns.Add("孔口坐标Z");
pk.Columns.Add("样品品味");

string t1 = textBox1.Text;
string t2 = textBox2.Text;
string t3 = textBox3.Text;
string t4 = textBox4.Text;
string t5 = textBox5.Text;
string t6 = textBox6.Text;
string t7 = textBox7.Text;
string t8 = textBox8.Text;
DataRow dr;
dr = pk.NewRow();
dr["炮孔号"] = t1;
dr["炮孔深度"] = t2;
dr["炮孔直径"] = t3;
dr["炮孔倾角"] = t4;
dr["孔口坐标X"] = t5;
dr["孔口坐标Y"] = t6;
dr["孔口坐标Z"] = t7;
dr["样品品味"] = t8;
pk.Rows.Add(dr);
dataGridView1.DataSource = pk;

}
}

那是当然,你每次点击按钮后,都重新生成一个全新的DataTable,并且只插入一条数据,当然就会出现你的问题了
修改一下:
DataTable pk;
if(dataGridView1.DataSource!= null){
pk = dataGridView1.DataSource as DataTable;
}

if(pk == null){
pk = new DataTable();
pk.Columns.Add("炮孔号");
pk.Columns.Add("炮孔深度");
pk.Columns.Add("炮孔直径");
pk.Columns.Add("炮孔倾角");
pk.Columns.Add("孔口坐标X");
pk.Columns.Add("孔口坐标Y");
pk.Columns.Add("孔口坐标Z");
pk.Columns.Add("样品品味");
}

string t1 = textBox1.Text;
string t2 = textBox2.Text;
string t3 = textBox3.Text;
string t4 = textBox4.Text;
string t5 = textBox5.Text;
string t6 = textBox6.Text;
string t7 = textBox7.Text;
string t8 = textBox8.Text;
DataRow dr;
dr = pk.NewRow();
dr["炮孔号"] = t1;
dr["炮孔深度"] = t2;
dr["炮孔直径"] = t3;
dr["炮孔倾角"] = t4;
dr["孔口坐标X"] = t5;
dr["孔口坐标Y"] = t6;
dr["孔口坐标Z"] = t7;
dr["样品品味"] = t8;
pk.Rows.Add(dr);
dataGridView1.DataSource = pk;
温馨提示:内容为网友见解,仅供参考
无其他回答

C#点击datagridview某行就将某行显示到另一个datagridview怎么设置?
点击按钮后,遍历数据,将其放入一个datatable中。然后,将此datatable绑定到另一个datagridview即可。这样,该datatable将保持状态,每次点击都会累加到其中。另一种方法是在第一个gridview中添加复选框。选择要添加到另一个gridview的行后,点击按钮遍历gridview,将被复选框选中的行的数据一起添加到data...

c#中datagridview绑定datatable
this.DataGridView1.Columns[0].DataPropertyName \/\/用这个属性指定每列的数据源项,也就是DataTable中的哪一列 this.DataGridView1.AutoGenerateColumns = fales;\/\/规定不自动生成列

...添加到另一个DatagridView2中急用要用代码。
DataTable dtable =new DataTable(); \/\/中间接收表 DataRow row; \/\/定义行 变量dt 为DatagridView1的数据源 事件代码 Button_Click事件中代码 dtable = dt.Clone(); \/\/先让中间表数据列DatagridView1的表的数据列相同 foreach (DataGridViewRow Row in dataGridView1.Rows) \/\/DataGridView全...

c#中datagridview绑定datatable
那是当然,你每次点击按钮后,都重新生成一个全新的DataTable,并且只插入一条数据,当然就会出现你的问题了 修改一下:DataTable pk;if(dataGridView1.DataSource!= null){ pk = dataGridView1.DataSource as DataTable;} if(pk == null){ pk = new DataTable();pk.Columns.Add("炮孔号");...

如何做:C#写的C\/S程序,DataGridView中要添加一列下拉选框,下拉选框的...
2.在弹出的菜单中单击“编辑列”3.在出现的对话框中,选择要修改的列,或者新添加一列4.此时在右侧的属性表中,把其“ColumnType”改为“DataGridViewComboBoxColumn”,就成了下拉菜单 5.然后修改其"DataSource"属性,把数据源绑定到你DataTable所在的表 6.修改其"DisplayMember",这里是表示DataTable...

在C#中DataGridView控件怎么绑定数据库的数据?
从数据库中把数据读出来放到一个数据集中,比如List<>、DataTable,DataSet,我一般用List<>,然后绑定数据源:IList<student> sList=StudentDB.GetAllList();DataGridView.DataSource=sList;如果你没有设置DataGridView的列,它会自动生成所有列,...

C# 怎么把数组中的数据添加到datagridview中
用循环datatable绑定。注意事项:当访问DataTable对象时,请注意它们是按条件区分大小写的。例如,如果一个DataTable被命名为“mydatatable”,另一个被命名为“Mydatatable”,则用于搜索其中一个表的字符串被认为是区分大小写的。如果“mydatatable”存在而“Mydatatable”不存在,则认为该搜索字符串不...

C# winform中 界面加载时datagridview绑定了数据源(datatable),修改dat...
重新绑定,例如:在事件中加入如下代码,datagridview.DataSours=(数据库新查询的数据);datagridview.Bind();

C# datagridview 增行 更新 datatable问题
1:在datagridview新增行事件或者是在按钮提交事件中写代码,将更新行的信息insert到数据库中。2:重新绑定datagridview.即:datagridview.datasource=datatable;datagridview.databind();

C#点击datagridview某行就将某行显示到另一个datagridview怎么设置?
点击按钮后把这行数据遍历,然后放到一个datatable 里面,然后另外的那个 绑定这个datatable 就好了,这样的话 就是你的这个datatable 就要保持一个状态,每次点击是累加到这个datatable里面。或者是这样。你在第一个gridview中 做个复选框 checkbox,然后 选择要添加到另外一个gridview中行,选择后 点击一...

相似回答