Advertisement
dylian

C# .NET MySql DbCommunicator Class example

Mar 19th, 2019
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 10.05 KB | None | 0 0
  1. class DbCommunicator
  2. {
  3.     #region Fields
  4.     private MySqlConnection _dbConnection;
  5.     #endregion
  6.  
  7.     #region Constructor
  8.     public DbCommunicator()
  9.     {
  10.         // Connection string opbouwen
  11.         MySqlConnectionStringBuilder connectionConfiguration = new MySqlConnectionStringBuilder();
  12.         connectionConfiguration.Server = "localhost";
  13.         connectionConfiguration.UserID = "gebruikersnaam";
  14.         connectionConfiguration.Password = "wachtwoord";
  15.         connectionConfiguration.Database = "database";
  16.  
  17.         // Database connectie configureren
  18.         _dbConnection = new MySqlConnection(connectionConfiguration.ConnectionString);
  19.     }
  20.     #endregion
  21.  
  22.     #region Private Methods (Functions)
  23.     private bool OpenConnection()
  24.     {
  25.         // Standaard er van uit gaan dat de verbinding met de database niet gaat lukken.
  26.         bool connectionEstablished = false;
  27.  
  28.         // Probeer verbinding te maken met de database
  29.         try
  30.         {
  31.             _dbConnection.Open();
  32.         }
  33.         catch (Exception ex)
  34.         {
  35.             //MessageBox.Show("Er is iets fout gegaan bij het verbinden met de database.\r\n" + ex.Message, "Fout!", MessageBoxButton.OK, MessageBoxImage.Error);
  36.  
  37.             Console.WriteLine(ex.Message);
  38.         }
  39.  
  40.         // Controleer het verbinden gelukt is
  41.         if (_dbConnection.State == ConnectionState.Open)
  42.         {
  43.             // Aangeven dat de verbinding gelukt is
  44.             connectionEstablished = true;
  45.         }
  46.  
  47.         // Teruggeven of het gelukt is om verbinding te maken (ja/nee)
  48.         return connectionEstablished;
  49.     }
  50.  
  51.     private void CloseConnection()
  52.     {
  53.         _dbConnection.Close();
  54.     }
  55.     #endregion
  56.  
  57.     #region Public Methods (Functions)
  58.     public DataView ReadMultiple(string param1, string param2)
  59.     {
  60.         // Maak een variable aan welke we later kunnen gebruiken om de opgehaalde gegevens terug te geven
  61.         // Standaard waarde: null, hiermee kunnen we later in de aanroepende code controleren of het ophalen gelukt is
  62.         DataView result = null;
  63.  
  64.         if (OpenConnection())
  65.         {
  66.             try
  67.             {
  68.                 // Bouw een nieuwe MySQL query op voor het ophalen van het aantal overeenkomende films
  69.                 MySqlCommand command = _dbConnection.CreateCommand();
  70.                 command.CommandText = "SELECT * FROM table WHERE column1 = @param1 AND column2 = @param2;";
  71.                 command.Parameters.AddWithValue("@param1", param1);
  72.                 command.Parameters.AddWithValue("@param2", param2);
  73.  
  74.                 // De opgebouwde query uitvoeren in de database
  75.                 MySqlDataReader reader = command.ExecuteReader();
  76.  
  77.                 if (reader.HasRows)
  78.                 {
  79.                     // Een nieuwe DataTable aanmaken in het geheugen om onze data in op te slaan
  80.                     DataTable resultTable = new DataTable();
  81.                     resultTable.Load(reader);
  82.  
  83.                     result = resultTable.DefaultView;
  84.                 }
  85.             }
  86.             catch (Exception ex)
  87.             {
  88.                 Console.WriteLine(ex.Message);
  89.             }
  90.  
  91.             CloseConnection();
  92.         }
  93.  
  94.         // Geef de opgehaalde gegevens terug (of null indien er iets fout gegaan is)
  95.         return result;
  96.     }
  97.  
  98.     public int ReadSingleInteger(string param1, string param2)
  99.     {
  100.         // Maak een variable aan welke we later kunnen gebruiken om de opgehaalde gegevens terug te geven
  101.         // Standaard waarde: -1, hiermee kunnen we later in de aanroepende code controleren of het ophalen gelukt is
  102.         int result = -1;
  103.  
  104.         if (OpenConnection())
  105.         {
  106.             try
  107.             {
  108.                 // Bouw een nieuwe MySQL query op voor het ophalen van het aantal overeenkomende films
  109.                 MySqlCommand command = _dbConnection.CreateCommand();
  110.                 command.CommandText = "SELECT column0 FROM table WHERE column1 = @param1 AND column2 = @param2;";
  111.                 command.Parameters.AddWithValue("@param1", param1);
  112.                 command.Parameters.AddWithValue("@param2", param2);
  113.  
  114.                 // De opgebouwde query uitvoeren in de database
  115.                 result = (int)command.ExecuteScalar();
  116.             }
  117.             catch (Exception ex)
  118.             {
  119.                 Console.WriteLine(ex.Message);
  120.             }
  121.  
  122.             CloseConnection();
  123.         }
  124.  
  125.         // Geef de opgehaalde gegevens terug (of null indien er iets fout gegaan is)
  126.         return result;
  127.     }
  128.  
  129.     public string ReadSingleString(string param1, string param2)
  130.     {
  131.         // Maak een variable aan welke we later kunnen gebruiken om de opgehaalde gegevens terug te geven
  132.         // Standaard waarde: null, hiermee kunnen we later in de aanroepende code controleren of het ophalen gelukt is
  133.         string result = null;
  134.  
  135.         if (OpenConnection())
  136.         {
  137.             try
  138.             {
  139.                 // Bouw een nieuwe MySQL query op voor het ophalen van het aantal overeenkomende films
  140.                 MySqlCommand command = _dbConnection.CreateCommand();
  141.                 command.CommandText = "SELECT column0 FROM table WHERE column1 = @param1 AND column2 = @param2;";
  142.                 command.Parameters.AddWithValue("@param1", param1);
  143.                 command.Parameters.AddWithValue("@param2", param2);
  144.  
  145.                 // De opgebouwde query uitvoeren in de database
  146.                 result = (string)command.ExecuteScalar();
  147.             }
  148.             catch (Exception ex)
  149.             {
  150.                 Console.WriteLine(ex.Message);
  151.             }
  152.  
  153.             CloseConnection();
  154.         }
  155.  
  156.         // Geef de opgehaalde gegevens terug (of null indien er iets fout gegaan is)
  157.         return result;
  158.     }
  159.  
  160.     public bool Create(string param1, string param2)
  161.     {
  162.         // Maak een variable aan waarin we aangeven of het maken van een nieuwe regel gelukt is
  163.         // we gaan er standaard vanuit dat het fout gaat
  164.         bool rowCreated = false;
  165.  
  166.         if (OpenConnection())
  167.         {
  168.             try
  169.             {
  170.                 // Bouw een nieuwe MySQL query op voor het ophalen van het aantal overeenkomende films
  171.                 MySqlCommand command = _dbConnection.CreateCommand();
  172.                 command.CommandText = "INSERT INTO table (column1, column2) VALUES (@param1, @param2);";
  173.                 command.Parameters.AddWithValue("@param1", param1);
  174.                 command.Parameters.AddWithValue("@param2", param2);
  175.  
  176.                 // De opgebouwde query uitvoeren in de database en opslaan hoeveel rijen beinvloed zijn
  177.                 int numberOfRowsAffected = command.ExecuteNonQuery(); // https://dev.mysql.com/doc/dev/connector-net/6.10/html/M_MySql_Data_MySqlClient_MySqlCommand_ExecuteNonQuery.htm
  178.  
  179.                 if (numberOfRowsAffected > 0)
  180.                 {
  181.                     rowCreated = true;
  182.                 }
  183.  
  184.             }
  185.             catch (Exception ex)
  186.             {
  187.                 Console.WriteLine(ex.Message);
  188.             }
  189.  
  190.             CloseConnection();
  191.         }
  192.  
  193.         // Geef de opgehaalde gegevens terug (of null indien er iets fout gegaan is)
  194.         return rowCreated;
  195.     }
  196.  
  197.     public bool Update(string param1, string param2)
  198.     {
  199.         // Maak een variable aan waarin we aangeven of het maken van een nieuwe regel gelukt is
  200.         // we gaan er standaard vanuit dat het fout gaat
  201.         bool rowUpdated = false;
  202.  
  203.         if (OpenConnection())
  204.         {
  205.             try
  206.             {
  207.                 // Bouw een nieuwe MySQL query op voor het ophalen van het aantal overeenkomende films
  208.                 MySqlCommand command = _dbConnection.CreateCommand();
  209.                 command.CommandText = "UPDATE table SET column1 = @param1 WHERE column2 = @param2;";
  210.                 command.Parameters.AddWithValue("@param1", param1);
  211.                 command.Parameters.AddWithValue("@param2", param2);
  212.  
  213.                 // De opgebouwde query uitvoeren in de database en opslaan hoeveel rijen beinvloed zijn
  214.                 int numberOfRowsAffected = command.ExecuteNonQuery(); // https://dev.mysql.com/doc/dev/connector-net/6.10/html/M_MySql_Data_MySqlClient_MySqlCommand_ExecuteNonQuery.htm
  215.  
  216.                 if (numberOfRowsAffected > 0)
  217.                 {
  218.                     rowUpdated = true;
  219.                 }
  220.  
  221.             }
  222.             catch (Exception ex)
  223.             {
  224.                 Console.WriteLine(ex.Message);
  225.             }
  226.  
  227.             CloseConnection();
  228.         }
  229.  
  230.         // Geef de opgehaalde gegevens terug (of null indien er iets fout gegaan is)
  231.         return rowUpdated;
  232.     }
  233.  
  234.     public bool Delete(string param1, string param2)
  235.     {
  236.         // Maak een variable aan waarin we aangeven of het maken van een nieuwe regel gelukt is
  237.         // we gaan er standaard vanuit dat het fout gaat
  238.         bool rowsDeleted = false;
  239.  
  240.         if (OpenConnection())
  241.         {
  242.             try
  243.             {
  244.                 // Bouw een nieuwe MySQL query op voor het ophalen van het aantal overeenkomende films
  245.                 MySqlCommand command = _dbConnection.CreateCommand();
  246.                 command.CommandText = "DELETE FROM table WHERE column1 = @param1 AND column2 = @param2;";
  247.                 command.Parameters.AddWithValue("@param1", param1);
  248.                 command.Parameters.AddWithValue("@param2", param2);
  249.  
  250.                 // De opgebouwde query uitvoeren in de database en opslaan hoeveel rijen beinvloed zijn
  251.                 int numberOfRowsAffected = command.ExecuteNonQuery(); // https://dev.mysql.com/doc/dev/connector-net/6.10/html/M_MySql_Data_MySqlClient_MySqlCommand_ExecuteNonQuery.htm
  252.  
  253.                 if (numberOfRowsAffected > 0)
  254.                 {
  255.                     rowsDeleted = true;
  256.                 }
  257.  
  258.             }
  259.             catch (Exception ex)
  260.             {
  261.                 Console.WriteLine(ex.Message);
  262.             }
  263.  
  264.             CloseConnection();
  265.         }
  266.  
  267.         // Geef de opgehaalde gegevens terug (of null indien er iets fout gegaan is)
  268.         return rowsDeleted;
  269.     }
  270.     #endregion
  271. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement