DataAdapter, dataGridView - nie lubią się?

0

Witam, postanowiłem przerzucić się z zapisywania danych w plikach tekstowych na jakieś bardziej cywilizowane metody, zatem postanowiłem, że dobrym pomysłem będzie użyciem SQL Compact Edition.

Przeszukałem trochę internetu i znalazłem proces tworzenia bazy i podpinania jej pod DGV. Wszystko ładnie, pięknie aż dochodzi do edycji.
Pierwszym problemem było dodawanie rekordów bezpośrednio w DGV - poradziłem sobie z tym tworząc obiekt CommandBuilder'a i myślałem, że teraz to już będzie działać. Niestety przeliczyłem się :)

Edycja rekordów powoduje wyrzucenie błędu:
Dynamiczne generowanie kodu SQL dla elementu UpdateCommand nie jest obsługiwane dla elementu SelectCommand, który nie zwraca żadnych informacji o kolumnie klucza. Podobna rzecz dzieje się po usunięciu rekordów.

Miał ktoś taki problem? Nie mam już siły, a cały dzień męczę się z tym.

 public partial class Form1 : Form
    {
        public string conString = Properties.Settings.Default.testConnectionString;
        SqlCeConnection con;
        SqlCeDataAdapter a;
        DataSet ds;
        SqlCeCommandBuilder builder;

        public Form1()
        {
            InitializeComponent();

            try
            {
                con = new SqlCeConnection(conString);
                con.Open();
                a = new SqlCeDataAdapter("SELECT * FROM friends", con);
                builder = new SqlCeCommandBuilder(a);
                ds = new DataSet();
                a.Fill(ds);
                dataGridView1.DataSource = ds.Tables[0];
            }
            catch (SqlCeException e) { MessageBox.Show(e.ToString()); }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            a.Update(ds);
        }

Oto fragment tego kodu.

0

Już sobie poradziłem. DataAdapter nie lubi, kiedy zmienia się elementy tableli, w której nie ma zdefiniowanego PRIMARY KEY. Jeżeli utworzy się jakiś klucz główny - działa.

Korzystając z wątku. Jak wygląda publikowanie programu z użyciem SQL CE? Co muszę załączyć do projektu, zeby działało to na innym komputerze?

1 użytkowników online, w tym zalogowanych: 0, gości: 1