i have adatagridview showinfg table content ,when i am trying to change a cell value at column directly from the datagridview
the update change all rows for the columns to the new value.
ex:- if checked row 1 column "CanShow " to "true" . all rows for the column "CanShow "aslo change to "true "
i just want to update only the cells i changed
here is my code :-
private void button4_Click(object sender, EventArgs e) { try { if (TXT_ID.Text != "") { foreach (DataGridViewRow Row in dgv.Rows) { { var conn2 = new SqlConnection(@"Data Source = MOHAMEDTHRWAT20\SQLEXPRESS; Initial Catalog = SharpControl; Integrated Security = True"); var cmd2 = new SqlCommand("", conn2); cmd2.CommandText = "update UserPr set UseID=@UseID,UseName=@UseName,ScreenId=@ScreenId,ScreenName=@ScreenName, CanShow =@CanShow, CanOpen = @CanOpen , CanEdit = @CanEdit ,CanDelete = @CanDelete , CanPrint = @CanPrint WHERE UseID='" + TXT_ID.Text + "'"; cmd2.Parameters.AddWithValue("@UseID", dgv.Rows[0].Cells[1].Value.ToString()); cmd2.Parameters.AddWithValue("@UseName", dgv.Rows[0].Cells[2].Value.ToString()); cmd2.Parameters.AddWithValue("@ScreenId", dgv.Rows[0].Cells[3].Value.ToString()); cmd2.Parameters.AddWithValue("@ScreenName", dgv.Rows[0].Cells[4].Value.ToString()); cmd2.Parameters.AddWithValue("@CanShow", dgv.Rows[0].Cells[5].Value.Equals(true || false)); cmd2.Parameters.AddWithValue("@CanOpen", dgv.Rows[0].Cells[6].Value.Equals(true || false)); cmd2.Parameters.AddWithValue("@CanAdd", dgv.Rows[0].Cells[7].Value.Equals(true || false)); cmd2.Parameters.AddWithValue("@CanEdit", dgv.Rows[0].Cells[8].Value.Equals(true || false)); cmd2.Parameters.AddWithValue("@CanDelete", dgv.Rows[0].Cells[9].Value.Equals(true || false)); cmd2.Parameters.AddWithValue("@CanPrint", dgv.Rows[0].Cells[10].Value.Equals(true || false)); conn2.Open(); cmd2.ExecuteNonQuery(); access(); conn2.Close(); } } updateaut(); } MessageBox.Show("update sucess"); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }