datagridview 动态添加行
DataTable dt =....for (int i = 0; i < dt.Columns.Count; i++)
{
DataGridViewTextBoxColumn txt = new DataGridViewTextBoxColumn();
txt.HeaderCell = chk;
txt.HeaderText = dt.Columns[i].ToString ();
gridHouse.Columns.Add(txt);
}
for (int j = 0; j < dt.Rows.Count; j++)
{
DataRow dr = dt.NewRow();
gridHouse.Rows.Add(); //怎么添加行
} --------------------编程问答-------------------- 往DataTable 里加
dt.Rows.Add(dt.NewRow()); --------------------编程问答-------------------- datagridview本身就是可以编辑的控件,最后一行就有一个*号,就可以编辑了。
例如数据表有3条记录,显示在DataGridView控件会有4行,第4行前面有*号,你编辑后,必须要编码实现更新。
修改、添加、删除都需要有,这是一个例子:
SqlConnection sqlConn = new SqlConnection("data source=(local); initial catalog=JWInfo; integrated security=SSPI");
SqlCommand selCmd = new SqlCommand("Select * from 学生信息", sqlConn);
sqlDa = new SqlDataAdapter(selCmd);
SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(sqlDa);
sqlDa.Fill(sqlDs, "学生信息");
DataGridView1.DataSource = sqlDs.Tables("学生信息");
更新逻辑:
sqlDsChanged = sqlDs.GetChanges();
if ((sqlDsChanged != null)) {
sqlDa.Update(sqlDs, "学生信息");
sqlDs.AcceptChanges();
if ((Op == OpType.Add)) {
MessageBox.Show("记录添加成功!", "操作结果", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else if ((Op == OpType.Update)) {
MessageBox.Show("记录更新成功!", "操作结果", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
--------------------编程问答-------------------- 我这个列是动态的 --------------------编程问答-------------------- 列动态生成,怎么添加行记录谢谢 --------------------编程问答-------------------- 一样的道理!
你动态生成的,也是要创建DataTable,为DataTable动态添加列,然后才能添加行。
最后将datagridview绑定到datatable上。这种情况下,你在datagridview中编辑数据后。
可以调用DataTable.AcceptChange() --------------------编程问答-------------------- 在表头的列上加了复选框 --------------------编程问答-------------------- for (int j = 0; j < dt.Rows.Count; j++)
{
DataRow dr = dt.Rows[j];
for (int h = 0; h < dt.Columns.Count; h++)
{
DataGridViewColumn dtColumn = new DataGridViewColumn();
dtColumn.Name = dr[h].ToString();
gridHouse.Rows.Add(dtColumn);
}
补充:.NET技术 , C#