Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class DbCommunicator
- {
- #region Fields
- private MySqlConnection _dbConnection;
- #endregion
- #region Constructor
- public DbCommunicator()
- {
- // Connection string opbouwen
- MySqlConnectionStringBuilder connectionConfiguration = new MySqlConnectionStringBuilder();
- connectionConfiguration.Server = "localhost";
- connectionConfiguration.UserID = "gebruikersnaam";
- connectionConfiguration.Password = "wachtwoord";
- connectionConfiguration.Database = "database";
- // Database connectie configureren
- _dbConnection = new MySqlConnection(connectionConfiguration.ConnectionString);
- }
- #endregion
- #region Private Methods (Functions)
- private bool OpenConnection()
- {
- // Standaard er van uit gaan dat de verbinding met de database niet gaat lukken.
- bool connectionEstablished = false;
- // Probeer verbinding te maken met de database
- try
- {
- _dbConnection.Open();
- }
- catch (Exception ex)
- {
- //MessageBox.Show("Er is iets fout gegaan bij het verbinden met de database.\r\n" + ex.Message, "Fout!", MessageBoxButton.OK, MessageBoxImage.Error);
- Console.WriteLine(ex.Message);
- }
- // Controleer het verbinden gelukt is
- if (_dbConnection.State == ConnectionState.Open)
- {
- // Aangeven dat de verbinding gelukt is
- connectionEstablished = true;
- }
- // Teruggeven of het gelukt is om verbinding te maken (ja/nee)
- return connectionEstablished;
- }
- private void CloseConnection()
- {
- _dbConnection.Close();
- }
- #endregion
- #region Public Methods (Functions)
- public DataView ReadMultiple(string param1, string param2)
- {
- // Maak een variable aan welke we later kunnen gebruiken om de opgehaalde gegevens terug te geven
- // Standaard waarde: null, hiermee kunnen we later in de aanroepende code controleren of het ophalen gelukt is
- DataView result = null;
- if (OpenConnection())
- {
- try
- {
- // Bouw een nieuwe MySQL query op voor het ophalen van het aantal overeenkomende films
- MySqlCommand command = _dbConnection.CreateCommand();
- command.CommandText = "SELECT * FROM table WHERE column1 = @param1 AND column2 = @param2;";
- command.Parameters.AddWithValue("@param1", param1);
- command.Parameters.AddWithValue("@param2", param2);
- // De opgebouwde query uitvoeren in de database
- MySqlDataReader reader = command.ExecuteReader();
- if (reader.HasRows)
- {
- // Een nieuwe DataTable aanmaken in het geheugen om onze data in op te slaan
- DataTable resultTable = new DataTable();
- resultTable.Load(reader);
- result = resultTable.DefaultView;
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- CloseConnection();
- }
- // Geef de opgehaalde gegevens terug (of null indien er iets fout gegaan is)
- return result;
- }
- public int ReadSingleInteger(string param1, string param2)
- {
- // Maak een variable aan welke we later kunnen gebruiken om de opgehaalde gegevens terug te geven
- // Standaard waarde: -1, hiermee kunnen we later in de aanroepende code controleren of het ophalen gelukt is
- int result = -1;
- if (OpenConnection())
- {
- try
- {
- // Bouw een nieuwe MySQL query op voor het ophalen van het aantal overeenkomende films
- MySqlCommand command = _dbConnection.CreateCommand();
- command.CommandText = "SELECT column0 FROM table WHERE column1 = @param1 AND column2 = @param2;";
- command.Parameters.AddWithValue("@param1", param1);
- command.Parameters.AddWithValue("@param2", param2);
- // De opgebouwde query uitvoeren in de database
- result = (int)command.ExecuteScalar();
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- CloseConnection();
- }
- // Geef de opgehaalde gegevens terug (of null indien er iets fout gegaan is)
- return result;
- }
- public string ReadSingleString(string param1, string param2)
- {
- // Maak een variable aan welke we later kunnen gebruiken om de opgehaalde gegevens terug te geven
- // Standaard waarde: null, hiermee kunnen we later in de aanroepende code controleren of het ophalen gelukt is
- string result = null;
- if (OpenConnection())
- {
- try
- {
- // Bouw een nieuwe MySQL query op voor het ophalen van het aantal overeenkomende films
- MySqlCommand command = _dbConnection.CreateCommand();
- command.CommandText = "SELECT column0 FROM table WHERE column1 = @param1 AND column2 = @param2;";
- command.Parameters.AddWithValue("@param1", param1);
- command.Parameters.AddWithValue("@param2", param2);
- // De opgebouwde query uitvoeren in de database
- result = (string)command.ExecuteScalar();
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- CloseConnection();
- }
- // Geef de opgehaalde gegevens terug (of null indien er iets fout gegaan is)
- return result;
- }
- public bool Create(string param1, string param2)
- {
- // Maak een variable aan waarin we aangeven of het maken van een nieuwe regel gelukt is
- // we gaan er standaard vanuit dat het fout gaat
- bool rowCreated = false;
- if (OpenConnection())
- {
- try
- {
- // Bouw een nieuwe MySQL query op voor het ophalen van het aantal overeenkomende films
- MySqlCommand command = _dbConnection.CreateCommand();
- command.CommandText = "INSERT INTO table (column1, column2) VALUES (@param1, @param2);";
- command.Parameters.AddWithValue("@param1", param1);
- command.Parameters.AddWithValue("@param2", param2);
- // De opgebouwde query uitvoeren in de database en opslaan hoeveel rijen beinvloed zijn
- int numberOfRowsAffected = command.ExecuteNonQuery(); // https://dev.mysql.com/doc/dev/connector-net/6.10/html/M_MySql_Data_MySqlClient_MySqlCommand_ExecuteNonQuery.htm
- if (numberOfRowsAffected > 0)
- {
- rowCreated = true;
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- CloseConnection();
- }
- // Geef de opgehaalde gegevens terug (of null indien er iets fout gegaan is)
- return rowCreated;
- }
- public bool Update(string param1, string param2)
- {
- // Maak een variable aan waarin we aangeven of het maken van een nieuwe regel gelukt is
- // we gaan er standaard vanuit dat het fout gaat
- bool rowUpdated = false;
- if (OpenConnection())
- {
- try
- {
- // Bouw een nieuwe MySQL query op voor het ophalen van het aantal overeenkomende films
- MySqlCommand command = _dbConnection.CreateCommand();
- command.CommandText = "UPDATE table SET column1 = @param1 WHERE column2 = @param2;";
- command.Parameters.AddWithValue("@param1", param1);
- command.Parameters.AddWithValue("@param2", param2);
- // De opgebouwde query uitvoeren in de database en opslaan hoeveel rijen beinvloed zijn
- int numberOfRowsAffected = command.ExecuteNonQuery(); // https://dev.mysql.com/doc/dev/connector-net/6.10/html/M_MySql_Data_MySqlClient_MySqlCommand_ExecuteNonQuery.htm
- if (numberOfRowsAffected > 0)
- {
- rowUpdated = true;
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- CloseConnection();
- }
- // Geef de opgehaalde gegevens terug (of null indien er iets fout gegaan is)
- return rowUpdated;
- }
- public bool Delete(string param1, string param2)
- {
- // Maak een variable aan waarin we aangeven of het maken van een nieuwe regel gelukt is
- // we gaan er standaard vanuit dat het fout gaat
- bool rowsDeleted = false;
- if (OpenConnection())
- {
- try
- {
- // Bouw een nieuwe MySQL query op voor het ophalen van het aantal overeenkomende films
- MySqlCommand command = _dbConnection.CreateCommand();
- command.CommandText = "DELETE FROM table WHERE column1 = @param1 AND column2 = @param2;";
- command.Parameters.AddWithValue("@param1", param1);
- command.Parameters.AddWithValue("@param2", param2);
- // De opgebouwde query uitvoeren in de database en opslaan hoeveel rijen beinvloed zijn
- int numberOfRowsAffected = command.ExecuteNonQuery(); // https://dev.mysql.com/doc/dev/connector-net/6.10/html/M_MySql_Data_MySqlClient_MySqlCommand_ExecuteNonQuery.htm
- if (numberOfRowsAffected > 0)
- {
- rowsDeleted = true;
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- CloseConnection();
- }
- // Geef de opgehaalde gegevens terug (of null indien er iets fout gegaan is)
- return rowsDeleted;
- }
- #endregion
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement