VB datagrid view a XML   otázka

VB.NET, XML, WinForms

Jsem absolutní začátečník a potřebuju udělat jednoduchou aplikaci, která bude zobrazovat id, jméno a příjmení z xml souboru a bude tam moct přidávat další. Zatím se mi nepovedlo najít přesně ten příklad který potřebuju. Základní znalosti mám ale nevím jak propojit xml s aplikací, zařídit aby se hned po startu zobrazil obsah xml a přidávat tam další. Mám k tomu využít dataset a datagrid view.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nevím, ale myslím si, že místo xml by bylo lepší použít nějakou databázi, např tabulku MSAccess...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Třeba takhle:

        DataSet ds;

        public Form1()
        {

            //načtení xml nebo nová instance datasetu
            using (var ofd = new OpenFileDialog())
            {
                if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    LoadDataSetFromXml(ofd.FileName);
                }
                else
                {
                    InicializeDataSet();
                }
            }


            dataGridView1.DataSource = ds.Tables["tabulka"];


        }

        //Inicializace datasetu s jednou tabulkou 
        //Tabulka má sloupce Id: Int, FirstName: string, LastName: string
        private void InicializeDataSet()
        {
            ds = new DataSet("tabulky");
            var dt = new DataTable("tabulka");
            dt.Columns.Add("Id", typeof(int));
            dt.Columns.Add("FirstName", typeof(string));
            dt.Columns.Add("LastName", typeof(string));
            ds.Tables.Add(dt);
        }

        //přidání záznamu
        private void AddPerson(int id, string firstName, string lastName)
        {

            var dt = ds.Tables["tabulka"];
            var r = dt.NewRow();

            r["Id"] = id;
            r["FirstName"] = firstName;
            r["LastName"] = lastName;

            dt.Rows.Add(r);
        }

        //odebrání záznamu
        private void RemovePerson(int id, string firstName, string lastName)
        {

            var dt = ds.Tables["tabulka"];

            foreach (DataRow r in dt.Rows)
            {
                if ((int)r["Id"] == id && (string)r["FirstName"] == firstName && (string)r["LastName"] == lastName)
                {
                    dt.Rows.Remove(r);
                }
            }
        }

        //uložení tabulky
        private void SaveDataSetToXml(string fileName)
        {
            ds.WriteXml(fileName);
        }

        //načtení tabulky
        private void LoadDataSetFromXml(string fileName)
        {
            ds.ReadXml(fileName);
        }

        //Uložení do souboru
        private void button1_Click(object sender, EventArgs e)
        {
            using (var sfd = new SaveFileDialog())
            {
                if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    SaveDataSetToXml(sfd.FileName);
                }
            }
        }
nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback