SqlConnection sqlConnection1 = new SqlConnection(); SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter(); DataSet dataSet1 = new DataSet(); sqlConnection1.ConnectionString = "uid=;pwd=;initial catalog=\"Database\";data source=server;Connect Timeout=30"; sqlConnection1.Open(); while(sqlConnection1.State != ConnectionState.Open) { } sqlDataAdapter1.SelectCommand = new SqlCommand( "select cforename, csurname, nperid from personnel", sqlConnection1); sqlDataAdapter1.Fill(dataSet1); MessageBox.Show("Update your data then click ok."); dataSet1.Tables[0].Rows[0]["cforename"] = "test"; SqlCommandBuilder sqlCB = new SqlCommandBuilder(sqlDataAdapter1); try { this.sqlDataAdapter1.Update(dataSet1); } catch(Exception Ex) { DataSet CurrentData = new DataSet(); sqlDataAdapter1.Fill(CurrentData); dataSet1.Merge(CurrentData, true); sqlDataAdapter1.Update(dataSet1); }On the second update in the catch, it causes a concurrency error despite what I thought was merging the current data in.