Witam,

Mam aplikację, w której do dataGridView wczytywane są wyselekcjonowane wiersze (na podstawie daty wybranej w monthCalendar) z Tabeli bazy MS SQL. Pola tabeli to ID int z autoinkrementacją, Data Datetime, Zadania varchar/string i Pliki varchar/string.

Pola są zdefiniowane także w dataGridView.

Odpowiednie rekordy wczytują się. Za pomocą formularza działa zapis nowych danych do bazy i odświeżanie wyświetlania. Jednak mam problem z zapisem przez formularz nowych wierszy do dGV kolejnych po wyświetlanych z bazy bez zapisu do bazy. Datatable lub dataGridView1.Rows.Add gryzie się z tym zapisem do bazy ponieważ według komunikatu dane są powiązane ze źródłem.

Oto kod:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace kalendarz
{
    public partial class Form1 : Form
    {
        DataClasses1DataContext dc = new DataClasses1DataContext();

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            odswiezGridView();
            // TODO: This line of code loads data into the 'kalendarzDataSet.Zadania' table. You can move, or remove it, as needed.
            this.zadaniaTableAdapter.Fill(this.kalendarzDataSet.Zadania);

        }

        private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
        {

            odswiezGridView();
        }


       
        private void button1_Click(object sender, EventArgs e)
        {
           
            //var dc = dataGridView1.Rows.Add(monthCalendar1.SelectionRange.Start, textBox3.Text, textBox4.Text);
            
    
        }

        private void button2_Click(object sender, EventArgs e)
        {

            Zadania zad = new Zadania();
            zad.Data = monthCalendar1.SelectionRange.Start;
            zad.Zadanie = textBox3.Text;
            zad.Pliki = textBox4.Text;


            dc.Zadanias.InsertOnSubmit(zad); // Add the new object to the Orders collection.
            dc.SubmitChanges(); // zapisuje do bazy
            odswiezGridView(); // wyświetla uaktualnione dane
        }

        private void odswiezGridView() // pobiera wiersze według daty
        {

            var query = from c in dc.Zadanias
                        where c.Data == monthCalendar1.SelectionRange.Start
                        select c;

            dataGridView1.DataSource = query;
        }

            
        }

    }