使用c#将新添加的datagridview行更新为oledb数据库

时间:2015-04-29 08:10:18

标签: c# winforms datagridview oledbconnection

我有 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;

                        }
                    }

1 个答案:

答案 0 :(得分:1)

我懒得思考....... 所以你可以添加带复选框的附加列,每当你添加一个新行时,复选框的默认值就会被选中,然后当你保存时,只检查那个特定的复选框是否被选中。 如果没有检查,则表示它不是新行,然后继续下一次迭代。

如果你没有得到我在下面说的评论,我会举个例子。