我有 datagridview
和添加以及保存按钮。每次我使用“添加”按钮向 datagridview
添加行,最后通过“保存”按钮将所有行保存到数据库。
我想再次向相同的 datagriview
添加几行,然后保存到数据库,但在将新项目保存到数据库时,它会再次获取整个datagridview行,保存到数据库。
我只想保存新添加的数据或编辑过的数据。有没有办法将焦点设置为新添加的行或编辑的行?并且最后只保存新添加或编辑的行?
我的datagridview总是在最后添加/插入数据到数据库。
我使用以下代码将datagridvew
行保存到数据库:
int chkLoop;
chkLoop = dgvOrderList.Rows.Count;
MessageBox.Show(chkLoop.ToString());
foreach (DataGridViewRow row in dgvOrderList.Rows)
{
//MessageBox.Show(chkLoop.ToString());
//MessageBox.Show(row.co.ToString());
if (chkLoop != 1)
{
comm = new OleDbCommand("INSERT INTO Orders_Description (ItemCode, Quantity, Amount, OrderId, CreatedOn) VALUES ('" + Convert.ToInt32(row.Cells["Code"].Value) + "', '" + Convert.ToInt32(row.Cells["Quantity"].Value) + "', '" + Convert.ToInt32(row.Cells["Amount"].Value) + "', '" + Convert.ToInt32(txtOrderNo.Text) + "', '" + DateTime.Now + "')", conn);
MessageBox.Show(comm.CommandText);
comm.ExecuteNonQuery();
chkLoop = chkLoop - 1;
}
}
答案 0 :(得分:1)
我懒得思考....... 所以你可以添加带复选框的附加列,每当你添加一个新行时,复选框的默认值就会被选中,然后当你保存时,只检查那个特定的复选框是否被选中。 如果没有检查,则表示它不是新行,然后继续下一次迭代。
如果你没有得到我在下面说的评论,我会举个例子。