简体   繁体   中英

C# change cell value of selected datagridview rows in database

Hello i want to change the column of all the selected rows in datagridview and database but it is changing all of the data not just the selected rows.

This is how a populate the datagridview.

  private void dgvAuditAllSettings()
    {
        crud.FillDataGrid("Select AuditID,DateTime,Name,Position,Action,Status from AuditTrail where Status = 'Active' order by DateTime DESC", ref dgvAuditAll);
        dgvAuditAll.Columns[0].Width = 60;
        dgvAuditAll.Columns[1].Width = 200;
        dgvAuditAll.Columns[2].Width = 150;
        dgvAuditAll.Columns[3].Width = 140;
        dgvAuditAll.Columns[4].Width = 470;
    }

and how i want to change its Column value. But it is changing all of the row in database not just the selected row.

 private void btnAuditSendArchives_Click(object sender, EventArgs e)
    {
        foreach (DataGridViewRow row in dgvAuditAll.SelectedRows)
        {
         // row.Cells[5].Value = "Archived";
            crud.AddRecord("Update AuditTrail set Status = 'Archive'");
        }
    }

You are indeed changing all rows in DB with this line:

crud.AddRecord("Update AuditTrail set Status = 'Archive'");

You didn't specify the id of the line, there is no where clause, so it will update all rows.

Try adding the id, it should be something like this:

crud.AddRecord($"Update AuditTrail set Status = 'Archive' Where AuditID = {row.Cells[0]}");

I use row.Cells[0] but it might be different depending on your implementation.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM