Avatar billede simsen Mester
19. juli 2006 - 21:59 Der er 1 løsning

update fanger ikke dataadapter

Hej

Jeg har selv lavet en dataset og dataadapter til at fylde 2 datagrids ud - dette fungerer perfekt. Mit problem er, når jeg ændrer i datagrid'et Faktura, har jeg oprettet en knap, hvor jeg så ville lave en update kommando på datasettet, men intellisense fanger ikke den da2 (dataadapter) jeg har lavet. Hvis jeg laver en da2.update hvor jeg opretter den, kan den godt finde den.

Min kode:
public void Faktureringssystem_Load_1(object sender, EventArgs e)
        {           
            this.firmaoplysningerTableAdapter.Fill(this.fakturasystemDataSet.Firmaoplysninger);
            this.produkterTableAdapter.Fill(this.fakturasystemDataSet.Produkter);

            //create a connection string to the access database
            OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;
                                        User Id=;Password=;
                                        Data Source=" + myDB);

            // Create the DataSet     
            ds = new DataSet("KundeFaktura");

            // Fill the Dataset with Customers, map Default Tablename
            // "Table" to "Customers".
            OleDbDataAdapter da1 = new OleDbDataAdapter("SELECT * FROM Kunder", cn);
            da1.TableMappings.Add("Table", "Kunder");
            da1.Fill(ds);

            // Fill the Dataset with Orders, map Default Tablename
            // "Table" to "Orders".           
            OleDbDataAdapter da2 = new OleDbDataAdapter("SELECT * FROM Faktura ORDER BY FakturaID DESC", cn);
            da2.TableMappings.Add("Table", "Faktura");
            da2.Fill(ds);

            // Establish the Relationship "RelOrdDet"
            // between Kunder ---< [Faktura]
            System.Data.DataRelation relOrdDet;
            System.Data.DataColumn colMaster2;
            System.Data.DataColumn colDetail2;
            colMaster2 = ds.Tables["Kunder"].Columns["KundeId"];
            colDetail2 = ds.Tables["Faktura"].Columns["KundeID"];
            relOrdDet = new System.Data.DataRelation("RelOrdDet", colMaster2, colDetail2);
            ds.Relations.Add(relOrdDet);

            // The DataViewManager returned by the DefaultViewManager
            // property allows you to create custom settings for each
            // DataTable in the DataSet.
            dsView = ds.DefaultViewManager;

            // Databinding for the Grid's
            dgrKunder.DataSource = dsView;
            dgrKunder.DataMember = "Kunder";

            dgrFaktura.DataSource = dsView;
            dgrFaktura.DataMember = "Kunder.RelOrdDet";
        }

og så her hvor jeg frygtelig gerne ville have følgende ind i min opdater knap:

private void btnFakturaGem_Click(object sender, EventArgs e)
        {
            this.da2.Update(this.ds);
        }

Hvorfor kan jeg ikke tilgå mit dataset og dataadapter, jeg selv har lavet?

mvh
simsen :-)
Avatar billede simsen Mester
20. juli 2006 - 23:05 #1
Jeg skulle oprette en CommmandBuilder, for at få tilgang til Update funktionen ved:

        private void btnFakturaGem_Click(object sender, EventArgs e)
        {
            cBuilder = new OleDbCommandBuilder(da2);

            da2.UpdateCommand = cBuilder.GetUpdateCommand();

            da2.Update(ds, "Faktura");

        }

Og så skulle jeg ændre select kommandoen fra SELECT * FROM.... til at selecte de felter, jeg ville have vist istedet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester