Announcement

Collapse
No announcement yet.

C# MySQL Verbindungs-DLL

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • C# MySQL Verbindungs-DLL

    Hallo, ich bin Anfänger.

    Ich habe folgendes Problem, ich möchte in einer DLL die Verbindung zu einer MySQL-DB herstellen. Das funktioniert einwandfrei.

    Mein Problem ist nun, dass ich in einer Methode die Verbindung herstellen möchte aber in den weiteren Methoden die Daten ein- oder auslesen.

    Die Deklarationen in der Verbindungsmethode greifen nicht mehr in den darauffolgenden Methoden.

    In der Methode hv_mysql_DatenLesen kann ich nicht mehr
    MySql_Command.CommandText ausführen


    Hier mein Code

    Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using MySql.Data;
    using MySql.Data.MySqlClient;
    using MySql.Data.Types;
    
    
    namespace hvmysqlsammlung
    {
        /* Diese DLL ist für den Zugriff und den Datenstrom zu einer MySQL-Datenbank
         * Verbindungsmethode
         * Lesemethoden (überlagert)
         * Schreibmethoden (überlagert)
         * Rückgabewert für eine erfolgreiche Verbindung ist "Verbindung aufgebaut"
         * Rückgabewert für ein erfolgreiches Lesen ist "Daten gelesen"
         * try-catch
         * Die Returnwerte sind so aufgebaut, dass mit Split ein Fehlerereingrenzung erfolgen kann
         * <dll-name>;<id-nummer>;<methode>;<fehlertext>
         */
        public static class hv_mysqlsammlung
        {
    
            /* Verbindungsaufnahme mit dem MySQL-Server
             * Hier wird die Verbindung zu einer Datenbank in MySQL aufgebaut
             * Die Übergabeparameter sind fix
             * AL 25.03.2011 - Germany
             */
            public static string hv_mysql_Verbindung 
            ( string mysql_SERVERNAME, string mysql_PORTNUMMER, string mysql_DATENBANKNAME, string mysql_BENUTZERNAME, string mysql_PASSWORT )
            {
    
                try
                {
                    //hier wird die verbindung vorbereitet
                    MySqlConnection MySql_Connection = new MySqlConnection
                        ( "SERVER=" + mysql_SERVERNAME + "PORT=" + mysql_PORTNUMMER + "DATABASE="
                        + mysql_DATENBANKNAME + "UID=" + mysql_BENUTZERNAME + "PASSWORD=" + mysql_PASSWORT );
    
                    //befehlsobjekt erstellen
                    MySqlCommand MySql_Command = MySql_Connection.CreateCommand();
    
                    //verbindung zur datenbank aufbauen
                    MySql_Connection.Open();
    
                    //rückgabewert
                    return "Verbindung aufgebaut";
                }
    
                #region catch
                catch ( MySqlConversionException mysql_coep )
                {
                    //Fehlermeldung in der Conversion zu MySQL
                    return "hvmysqlsammlung;1;hv_mysql_Verbindung;MySqlConversionException: " + mysql_coep;
                }
                catch ( MySqlException mysyl_ep )
                {
                    //Fehlermeldung in der Conversion zu MySQL
                    return "hvmysqlsammlung;2;hv_mysql_Verbindung;MySqlException: " + mysyl_ep;
                }
                catch ( Exception ep )
                {
                    //Exception Fehler System
                    return "hvmysqlsammlung;3;hv_mysql_Verbindung;MySqlException: " + ep;
                }
                #endregion
    
            }
    
    
            public static string hv_mysql_DatenLesen ( string Tabellenname) /*Hier werden alle vorhandenen Daten eingelesen*/
            {
                try
                {
    
                    MySqlDataReader MySql_DataReader;
    
                    MySql_Command.CommandText = "SELECT * FROM " + Tabellenname + ";";
    
    
                    //rückgabewert
                    return "Daten gelesen";
                }
    
                #region catch
                catch ( MySqlConversionException mysql_coep )
                {
                    //Fehlermeldung in der Conversion zu MySQL
                    return "hvmysqlsammlung;1;hv_mysql_DatenLesen;MySqlConversionException: " + mysql_coep;
                }
                catch ( MySqlException mysyl_ep )
                {
                    //Fehlermeldung in der Conversion zu MySQL
                    return "hvmysqlsammlung;2;hv_mysql_DatenLesen;MySqlException: " + mysyl_ep;
                }
                catch ( Exception ep )
                {
                    //Exception Fehler System
                    return "hvmysqlsammlung;3;hv_mysql_DatenLesen;MySqlException: " + ep;
                }
                #endregion
            }
    
        }
    }
    Vielen Dank für die Hilfe

    Gruß

  • #2
    MySql_Command ist in der hv_mysql_DatenLesen Methode definiert und damit eine lokale Variable die nur innerhalb eines Methodenaufrufs dieser Methode gültig ist(heißt nach Ablauf der Methode werden die lokalen Variablen zerstört).

    Wenn du in einer anderen Methode deiner Klasse auf dieses Objekt zugreifen willst musst du MySql_Command alsFeld deiner Klasse definieren. Damit ist die Lebensdauer von MySql_Command an die Lebensdauer der Klasse gebunden und von überall innerhalb der Klasse zugreifbar.

    Comment


    • #3
      MySQL.dll

      Vielen Dank.

      Habe die ganze mysql-bindung direkt unter die Klasse gesetzt.

      Dein Beitrag war eine große Hilfe.

      Vielen Dank

      Comment

      Working...
      X