Avatar billede larskhansen Nybegynder
04. november 2005 - 11:09 Der er 7 kommentarer og
1 løsning

Ukendt opdatering af Dataset til database

Hejsa.

Jeg sidder godt og grundig fast...
Det skal siges at jeg ikke har rodet med C# så længe... Aka Newbie :)

Jeg har et datagrid, et dataset og en mySQL.
Programmet henter fra mySQL'en -> dataset -> datagrid via en Dataadapter.

Men jeg ved ikke hvad mySQL'en indeholder. Det finder jeg ud af imellem mySQL'en og dataset.

Jeg skal have en funktion som gemmer fra datagrid -> dataset -> mySQL via Dataadapter. Jeg kender som sagt ikke info'en på forhånd. Så det er ikke lige til.

Anyone?
Avatar billede arne_v Ekspert
04. november 2005 - 11:12 #1
er det ikke bare:

DataAdapter Update
DataSet AcceptChanges
DataGrid Refresh

uanset data ?
Avatar billede larskhansen Nybegynder
04. november 2005 - 11:40 #2
Ikke helt.

Den skal have en Insertcommand...
Avatar billede arne_v Ekspert
04. november 2005 - 11:48 #3
hvis du bruger CommandBuilder til at tilføje SQL kommandoer til DataAdapter så
behøver du ikke selv skrive INSERT
Avatar billede larskhansen Nybegynder
04. november 2005 - 11:50 #4
CommandBuilder. Den kigger jeg på nu :o)

Hvis du kan komme med et godt eksempel vil jeg blive glad :o)
Avatar billede arne_v Ekspert
04. november 2005 - 12:40 #5
Eksempel jeg lavede engang:

using System;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Windows.Forms;

namespace DefaultNamespace
{
    public class MainForm : Form
    {
        private DataGrid dg;
        private Button save;
        private OleDbConnection con;
        private OleDbDataAdapter da;
        private OleDbCommandBuilder cb;
        private DataSet ds;

        public static void Main()
        {
            MainForm fMainForm = new MainForm();
            fMainForm.ShowDialog();
        }
        public MainForm()
        {
            InitializeComponent();
        }
        private void InitializeComponent()
        {
            con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Database\\MSAccess\\Test.mdb;");
            con.Open();
            da = new OleDbDataAdapter("SELECT * FROM T1", con);
            cb = new OleDbCommandBuilder(da);
            da.UpdateCommand = cb.GetUpdateCommand();
            ds = new DataSet();
            da.Fill(ds, "T1");
            dg = new DataGrid();
            save = new Button();
            SuspendLayout();
            dg.Location = new Point(50, 50);
            dg.Size = new Size(300, 200);
            dg.SetDataBinding(ds, "T1");
            save.Location = new Point(50, 300);
            save.Size = new Size(100, 25);
            save.Text = "Save";
            save.Click += new EventHandler(SaveClick);
            ClientSize = new Size(400, 400);
            Controls.Add(dg);
            Controls.Add(save);
            Text = "Main Form";
            ResumeLayout(false);
        }
        void SaveClick(object sender, EventArgs e)
        {
            da.Update(ds, "T1");
            ds.AcceptChanges();
            dg.Refresh();
        }
    }
}
Avatar billede arne_v Ekspert
04. november 2005 - 12:41 #6
da.UpdateCommand = cb.GetUpdateCommand();

burde ikke være nødvendig, men det var de for mig

der er også for insert og delete

eksemplet er for Access, men DataGrid/DataSet/DataAdapter er helt det samme for MySQL
Avatar billede larskhansen Nybegynder
04. november 2005 - 12:48 #7
Smid et svar og du får pointene...
Avatar billede arne_v Ekspert
04. november 2005 - 12:50 #8
ok
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