• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. C + C++ + C #

Forum

  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04
  • Partner Gezocht om meerdere NFT Collecties op Open Sea te Plaatsen

    NFT Art Designer 1 maart 2025 om 14:08

Marktplaats

  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07
  • Van een pixelige afbeelding naar een strakke, moderne website

    Syntax 21 december 2025 om 17:05

[C#] Database class

  • Dees
  • 21 mei 2014 om 09:46
  • Dees
    Elite members
    Ontvangen Reacties
    64
    Articles
    1
    Berichten
    358
    • 21 mei 2014 om 09:46
    • #1

    Beste lezer,

    Ik heb nog niet veel met MySQL en C# samen gedaan, maar ik wil graag een class maken waar ik query's naar kan sturen en dat deze dan worden uitgevoerd en het resultaat terug gestuurd wordt. Ik heb al een Class gemaakt maar vroeg me af of dit beter kon of dat iemand een betere class heeft.

    Hier mijn class.

    C#
    using MySql.Data.MySqlClient;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    
    namespace E_learning
    {
        class Database
        {
            private MySqlConnection _MySQLconn;
    
    
            /**
             * Database - Class constructor
             * stabilize database connection.
             */
            public Database(string _sUser, string _sPassword, string _sDatabase, string _sHost = "locahost")
            {
                // Create DB connection
                _MySQLconn = new MySqlConnection("Server=" + _sHost + ";Database=" + _sDatabase + ";Uid=" + _sUser + ";Pwd="+ _sPassword +";");
                _MySQLconn.Open(); // Open DB connection
            }
    
    
            /**
             * query - This functions is used to creates queries
             */
            public DataTable query(string sQuery = "")
            {
                MySqlCommand mscSelect = new MySqlCommand(sQuery, _MySQLconn); // Create query
    
    
                try
                {
                    MySqlDataReader mscReader = mscSelect.ExecuteReader();
                    DataTable dtData = new DataTable();
                    dtData.Load(mscReader);
                    return dtData;
                }
                catch (Exception)
                {
                    MessageBox.Show("Helaas, er is iets fout gegaan bij het ophalen van de gegevens.");
                }
    
    
                return new DataTable();
            }
    
    
            /**
             * conn - Function that will return the MySQLConnection.
             * When send a parameter it will set a new connection.
             */
            public MySqlConnection conn(MySqlConnection NewMySQLconn = null)
            {
                if (MySqlConnection.ReferenceEquals(_MySQLconn, NewMySQLconn))
                {
                    _MySQLconn = NewMySQLconn;
                }
    
    
                return _MySQLconn;
            }
        }
    }
    Toon Meer

    EDIT:

    Ik heb de tips van Bits geïmplementeerd. Hier het resultaat.

    Met vriendelijke groet,

    Dees

    Bewerkt één keer, laatst door Dees (21 mei 2014 om 11:18).

  • Bits
    Beginner
    Ontvangen Reacties
    1
    Berichten
    29
    • 21 mei 2014 om 09:56
    • #2

    Wat mij vooral opvalt is dat je in je catch een messagebox.show doet, dat betekend dat je form elementen in je class hebt gedaan en dat is niet de bedoeling.

    Verder ga je querys wegschrijven, maar let je niet op sql injectie. Beter is om te zorgen dat je een query stuurt en parameters voor die query.

    Moet je maar eens kijken naar voorbeelden hoe je geparameteriseerde query's schrijft.

  • Dees
    Elite members
    Ontvangen Reacties
    64
    Articles
    1
    Berichten
    358
    • 21 mei 2014 om 10:06
    • #3

    SQL injection maakt op dit moment niet zo uit, het is een project voor school waar ik een E-Learnings applicatie moet maken voor kinderen uit een ziekenhuis. Moet ook zorgen dat de behaalde resultaten in een Care2X ziekenhuis systeem moet komen. Vandaar dat ik alle resultaten in die database ga zetten.

    Maar aan de code zelf, behalve de sql injection en de tijdelijke messagebox, is het wel een goede code voor het maken van query's?

    Ik zal trouwens wel even kijken naar de geparameteriseerde query's dit kan later zeker nog van pas komen.

    Met vriendelijke groet,

    Dees

  • L. Velthuis
    Vato Gonzalez
    Ontvangen Reacties
    32
    Berichten
    682
    • 21 mei 2014 om 11:27
    • #4

    Alleen een MessageBox laten zien bij een try catch statement is niet zo'n ramp?

    Beginnend DJ! Volg mij op MixCloud!

    Lars Velthuis | Mixcloud

  • Sander.DJ
    Beginner
    Ontvangen Reacties
    1
    Berichten
    8
    • 21 mei 2014 om 13:55
    • #5
    Citaat van L. Velthuis

    Alleen een MessageBox laten zien bij een try catch statement is niet zo'n ramp?


    Stel dat je deze class gaat gebruiken in een ASP.net applicatie en je komt in de catch terecht. Dan geeft je programma een messagebox aan de server die nooit beantwoord gaat worden. Met als gevolg dat je programma blijft hangen. Dat is niet de bedoeling.

  • L. Velthuis
    Vato Gonzalez
    Ontvangen Reacties
    32
    Berichten
    682
    • 21 mei 2014 om 15:02
    • #6
    Citaat van Sander.DJ


    Stel dat je deze class gaat gebruiken in een ASP.net applicatie en je komt in de catch terecht. Dan geeft je programma een messagebox aan de server die nooit beantwoord gaat worden. Met als gevolg dat je programma blijft hangen. Dat is niet de bedoeling.

    Hmm,

    Is ook weer waar. Thanks wist ik niet :).

    zal hij dan in plaats van een messagebox een console.writeline moeten uitvoeren?

    Beginnend DJ! Volg mij op MixCloud!

    Lars Velthuis | Mixcloud

  • Dees
    Elite members
    Ontvangen Reacties
    64
    Articles
    1
    Berichten
    358
    • 21 mei 2014 om 15:17
    • #7

    Heb nu gewoon een lege DataTable gestuurd zoals je hier kan zien.

    Met vriendelijke groet,

    Dees

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37

Gebruikers die dit topic bekijken

  • 1 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design