none
MySQL Verbindungseinstellungen aus einer Config Datei auslesen. RRS feed

  • Frage

  • Guten morgen,

    ich möchte gerne folgendes tun:

    Ich Habe eine Anwendung welche auf eine MySQL Datenbank zugreift.

    Klappt soweit.

    Jedoch sind die Verbindungsdaten mit im Code aufgelistet und können somit von anderen nicht verändert werden.

     try
                {
                    string myConnection = "datasource=46.29.2.162;port=3306;username=lexx;password=1121";
                    MySqlConnection myConn = new MySqlConnection(myConnection);
    
                    MySqlCommand SelectCommand = new MySqlCommand("select * from Tool.user where username='" + this.textBox1.Text + "' and password='" + this.textBox2.Text + "' and secure_key='" + this.textBox3.Text +"' ;", myConn);
    
                    MySqlDataReader myReader;
                    myConn.Open();
                    myReader = SelectCommand.ExecuteReader();
                    int count = 0;
                    while (myReader.Read())
                    {
                        count = count + 1;
                    }
                    if (count == 1)
                    {
                        MessageBox.Show("Successfully Logged In!");
                        Form2 frm = new Form2();
                        frm.Show();
                    }
                    else if (count < 1)
                    {
                        MessageBox.Show("Please check your Login Details and try it again!\nIf you are not a member of the Viable LastChaos Team please go away nub...!",
                    "Error!",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error,
                    MessageBoxDefaultButton.Button2);
                        myConn.Close();
                    }
                    else if (count > 1)
                    {
                        MessageBox.Show("Duplicated Account Details!\nPlease Contact the Administrator!!!",
                    "Error!",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error,
                    MessageBoxDefaultButton.Button2);
                        myConn.Close();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

    Man soll die Verbindungdaten (Host,username,pwd) in einer Config oder txt datei eingeben können welche das Program dann nutzt.

    Die eingabe in textboxen würde auch schonmal reichen.

    Mfg,

    Lexx

    Mittwoch, 21. Mai 2014 11:59

Antworten

Alle Antworten

  • Hi,

    nimm doch einfach die web.config (ASP.NET) oder die app.config (sonstige Anwendungsarten). Dort gibt es einen Abschnitt ConnectionStrings und dort kann man die Verbindungszeichenfolgen hinterlegen. Siehe dazu:

      http://msdn.microsoft.com/de-de/library/ms254494.aspx

    Der Zugriff erfolgt dann bspw. über:

    String connString = ConfigurationManager.ConnectionStrings[ "KeyDesElementsInAppConfig" ].ConnectionString;
    


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 21. Mai 2014 12:02
    Moderator
  • Ich verstehe das noch nicht ganz..

    In der späteren Config sollte der Inhalt ungefähr so aussehen:

    [SQL CONFIG]
    IP:127.0.0.1
    USER:root
    PW:root
    DATA:newproject_data
    DB:newproject_db
    AUTH:newproject_auth

    Da soll man das dann ändern können

    Mfg,

    Mittwoch, 21. Mai 2014 15:57
  • Hi,

    dieses Format solltest Du dir schenken. Wenn Du die einzelnen Werte haben willst, nimm entsprechende Keys im <appSettings> Node der web.config, bzw. app.config.

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <appSettings>
            <add key="SQL:ServerName" value="NameOderIpAdresseDesSQLServers" />
            <add key="SQL:UserName"   value="Benutzername" />
            <add key="SQL:Password"   value="Passwort" />
            ...
        </appSettings>
    </configuration>
    

    Die Werte kannst Du dann per:

    String SQLServerName = ConfigurationManager.AppSettings[ "SQL:ServerName" ];
    String SQLUserName   = ConfigurationManager.AppSettings[ "SQL:UserName" ];
    String SQLPassword   = ConfigurationManager.AppSettings[ "SQL:Password" ];
    ...

    auslesen.

    Das von dir gezeigte Format wäre eher sowas wie eine INI Datei. IMO macht es keinen Sinn, damit zu arbeiten.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 21. Mai 2014 16:02
    Moderator
  • Eine config.ini würde mir auch reichen.

    Hauptsache man kann die Verbindugsdaten i.wo eingeben sodass jeder das Prog nutzen kann.

    Habe es jetzt mal so probiert kommen jedoch noch ein paar Fehler welche ich nicht genau beheben kann...

    App.Config inhalt:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <appSettings>
        <add key="SQL:ServerName" value="NameOderIpAdresseDesSQLServers" />
        <add key="SQL:UserName"   value="Benutzername" />
        <add key="SQL:Password"   value="Passwort" />
        <add key="SQL:DataDB"   value="DataDB" />
        <add key="SQL:CharDB"   value="CharDB" />
        <add key="SQL:AuthDB"   value="AuthDB" />
      </appSettings>
    </configuration>

    Fehler :

    P.s. Vielen Vielen Dank für die Großartige Hilfe!


    • Bearbeitet Lexvo Mittwoch, 21. Mai 2014 16:46
    Mittwoch, 21. Mai 2014 16:20
  • Hi,

    füg bitte einen Verweis auf die Assembly System.Configuration.dll in dein Projekt ein. Falls das schon der Fall ist, schreib mal ganz oben in die Datei, die den gezeigten Code beinhaltet:

    using System.Configuration;
    


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 21. Mai 2014 17:11
    Moderator
  • Hi,

    der andere Fehler bei "myConnection" kommt wohl daher, dass es keine Variable "myConnection"gibt. Die müsstest Du dir noch erstellen und mit den passenden Werten versehen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 21. Mai 2014 20:44
    Moderator
  • Hi,

    hat dir die Antwort geholfen? Falls ja, schließ den Thread doch bitte durch markieren der Posting(s), die die Antwort(en) auf deine Frage(n) beinhalten, als Antwort ab.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Dienstag, 27. Mai 2014 18:10
    Moderator