Chciałbym automatycznie aktualizować baze po wprowadzeniu zmian w datagriedview. Niestety poległem i nie wiem co dalej zrobić. Za bledy w kodzie przepraszam, bo jeszcze sie ucze ;)

namespace hccp2
{
    

    public partial class Form1 : Form
    {
        string connString = hccp2.Properties.Settings.Default.HCCPConnectionString;

   

        public Form1()
        {
            InitializeComponent();
            

        }

        private void Form1_Load(object sender, EventArgs e)
        {
             

//wczytuje pielgniarki do comboxa
            // TODO: Ten wiersz kodu wczytuje dane do tabeli 'hCCPDataSet.piel' . Możesz go przenieść lub usunąć.
            this.pielTableAdapter.Fill(this.hCCPDataSet.pielegniarki);



            //pobieranie roku/miesiaca do comboboxa



            //polaczenie
            string connString = hccp2.Properties.Settings.Default.HCCPConnectionString;
            SqlConnection conn = new SqlConnection(connString);
            conn.Open();

            string ssql2 = "select distinct year(data) as Rok from zapl";
            string ssql1 = "select distinct month(data) as Miesiąc from zapl";

            SqlCommand objCmd2 = new SqlCommand(ssql2, conn);
            SqlCommand objCmd1 = new SqlCommand(ssql1, conn);

            objCmd2.ExecuteNonQuery();
            objCmd1.ExecuteNonQuery();


            //kopiwoanei do comboboxa
            SqlDataAdapter da2 = new SqlDataAdapter(objCmd2);

            DataTable table2 = new DataTable();

            da2.Fill(table2);

            comboBox2.Controls.Clear();

            comboBox2.DataSource = table2;
            comboBox2.DisplayMember = "Rok";
            comboBox2.ValueMember = "Rok";


            SqlDataAdapter da = new SqlDataAdapter(objCmd1);

            DataTable table1 = new DataTable();

            da.Fill(table1);

            comboBox3.Controls.Clear();

            comboBox3.DataSource = table1;
            comboBox3.DisplayMember = "Miesiąc";
            comboBox3.ValueMember = "Miesiąc";

            conn.Close();
        }

        private void button1_Click(object sender, EventArgs e)
        {


            string id;
            id = comboBox1.SelectedValue.ToString();


            //polaczenie
      
            SqlConnection conn = new SqlConnection(connString);
            conn.Open();


            int idp;
            bool parsed3 = Int32.TryParse(id, out idp);


            //zaplanowane

            try
            {

 //zaplanowane

                //zaplanowane wybor miesiaca i roku(wybieram tylko rekord ktory spelnia warunki)
                string ssql = "SELECT dniowki AS [Dniówki],nocki AS [Nocki],ranki AS [Ranki],dodatkowe AS [Dodatkowe] FROM zapl LEFT OUTER JOIN pielegniarki ON zapl.userid = pielegniarki.id WHERE  (zapl.userid =" + idp + "and Year(data)= " + comboBox2.SelectedValue.ToString() + "and Month(data)= " + comboBox3.SelectedValue.ToString() + ")";


                SqlCommand objCmd = new SqlCommand(ssql, conn);


                //wpylenianie zaplnowanych
                objCmd.ExecuteNonQuery();


                SqlDataAdapter da = new SqlDataAdapter(objCmd);
                DataTable table = new DataTable();

                da.Fill(table);

              

                bindingSource1.DataSource = table;

                dataGridView1.DataSource = bindingSource1;
         
                da.Update(table);

               

                // konwertowanie z datagriedview do intow
                int dn = Convert.ToInt32(dataGridView1.Rows[0].Cells[0].Value);
                int n = Convert.ToInt32(dataGridView1.Rows[0].Cells[1].Value);
                int r = Convert.ToInt32(dataGridView1.Rows[0].Cells[2].Value);
               int d = Convert.ToInt32(dataGridView1.Rows[0].Cells[3].Value);
              
               
                //obliczenie czasu

                int liczenie = (dn * 12 * 60) + (n * 12 * 60) + (r * 455) + d;

                

                //konwertowanie intow na godziny i minuty

               TimeSpan span1 = TimeSpan.FromMinutes(liczenie);
        
               string godziny = string.Format("{0}:{1}",
          ((int)span1.TotalHours), span1.Minutes);

               textBox1.Text = godziny;

               

                 //wykonane

            

                //wykonane wybor miesiaca i plany
                   string ssql2 = "SELECT dniowki AS [Dniówki],nocki AS [Nocki],ranki AS [Ranki],dodatkowe AS [Dodatkowe] FROM wyk LEFT OUTER JOIN pielegniarki ON wyk.userid = pielegniarki.id WHERE  (wyk.userid =" + idp + "and Year(data)= " + comboBox2.SelectedValue.ToString() + "and Month(data)= " + comboBox3.SelectedValue.ToString() + ")";


                    SqlCommand objCmd2 = new SqlCommand(ssql2, conn);


                    //wpylenianie wyk
                    objCmd2.ExecuteNonQuery();


                    SqlDataAdapter da2 = new SqlDataAdapter(objCmd2);
                    DataTable table2 = new DataTable();

                    da2.Fill(table2);

                    dataGridView2.DataSource = table2;


                    dataGridView2.Invalidate();
                    dataGridView2.Refresh();


                
                   // konwertowanie z datagriedview do intow
               
                   int dn2 = Convert.ToInt32(dataGridView2.Rows[0].Cells[0].Value);
                   int n2 = Convert.ToInt32(dataGridView2.Rows[0].Cells[1].Value);
                   int r2 = Convert.ToInt32(dataGridView2.Rows[0].Cells[2].Value);
                  int d2 = Convert.ToInt32(dataGridView2.Rows[0].Cells[3].Value);

               
                    //obliczenie czasu

                   int liczenie2 = (dn2 * 12 * 60) + (n2 * 12 * 60) + (r2 * 455) + d2;

                

                

                TimeSpan span2 = TimeSpan.FromMinutes(liczenie2);
              string godziny2 = string.Format("{0}:{1}",
       ((int)span2.TotalHours), span2.Minutes);

                  textBox2.Text = godziny2; 



                 // obliczanie i wysietlaeni roznicy

                   TimeSpan wyn = span1- span2;


                  string roznica = string.Format("{0}:{1}",
              ((int)wyn.TotalHours), wyn.Minutes);

                 textBox3.Text = roznica;



            }
            catch
            {
                MessageBox.Show("Błąd");
            }




            conn.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Form2 dodawanie = new Form2();
            dodawanie.Show();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Form3 dodawanie = new Form3();
            dodawanie.Show();
        }

        private void button4_Click(object sender, EventArgs e)
        {

       

        }

        void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {

            
            dataGridView1.DataSource = bindingSource1;
            dataGridView1.Update();
            dataGridView1.Refresh();
           
        }
    }
}