none
MySQL Werteabfrage in C# RRS feed

  • Frage

  • Moin, ich versuche seid langer Zeit mehrere Werte aus MySQL abzufragen und mir diese wiederzugeben.

    Das funktioniert:

    public static List<MySQLMethods> GetUsers()
    {
        List<MySQLMethods> users = new List<MySQLMethods>();
    
        String query = "SELECT * FROM users";
    
        MySqlCommand cmd = new MySqlCommand(query, dbConn);
    
        dbConn.Open();
    
        MySqlDataReader reader = cmd.ExecuteReader();
    
        while (reader.Read())
        {
            String group = reader["group"].ToString();
            String username = reader["username"].ToString();
            String password = reader["password"].ToString();
    
            MySQLMethods u = new MySQLMethods(group, username, password);
    
            users.Add(u);
        }
    
        reader.Close();
    
        dbConn.Close();
    
        return users;
    }
    

    Das Funktioniert nicht:

    private static string externalip = new System.Net.WebClient().DownloadString("http://icanhazip.com");
    
    public static List<MySQLMethods> GetUsers()
    {
        List<MySQLMethods> users = new List<MySQLMethods>();
    
        String query = "SELECT * FROM users WHERE externalip ='" + externalip + "'";
    
        MySqlCommand cmd = new MySqlCommand(query, dbConn);
    
        dbConn.Open();
    
        MySqlDataReader reader = cmd.ExecuteReader();
    
        while (reader.Read())
        {
            String group = reader["group"].ToString();
            String username = reader["username"].ToString();
            String password = reader["password"].ToString();
    
            MySQLMethods u = new MySQLMethods(group, username, password);
    
            users.Add(u);
        }
    
        reader.Close();
    
        dbConn.Close();
    
        return users;
    }


    Montag, 29. März 2021 18:12

Antworten

  • Hallo Lucas,

    dann setz doch bitte mal einen Breakpoint auf die Zeile, in der das SQL Statement zusammengebaut wird, starte das Debugging mit F5 in Visual Studio, lauf bis zu dem Haltepunkt, gehe einen Schritt im Debugger weiter und schau dir dann dann, was genau in deiner Variablen "query" steht. Das nimmst Du dann und führst es mal mit einem anderen Tool wie bspw. HeidiSQL, ... direkt gegen die Datenbank aus und schaust, ob da dann Ergebnisse kommen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Montag, 29. März 2021 19:55
    Moderator

Alle Antworten

  • Hallo Lucas,

    "funktioniert nicht" ist leider rein gar nichts, mit dem man auch nur irgendwas anfangen könnte.

    Was genau geht nicht? Wie äußert sich das? Kommt eine Fehlmeldung? Falls ja, poste bitte die exakte und vollständige Meldung, keine verkürzte oder eigeninterpretierte Fassung davon. Welchen MySQL Client und welche MySQL Server Version verwendest Du?

    ---

    So ganz generell: Nutze nie Stringverkettungen mit eingesetzten Werten für SQL Statements. Damit handelst Du die über kurz oder lang SQL Injection Probleme ein und die willst Du nicht, vertrau mir.

    Verwende Parameter.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Montag, 29. März 2021 18:42
    Moderator
  • Hi Stefan, ich will durch diese Abfrage mir Werte wie username, group usw. aus der MySQL Datenbank holen und diese in Form eines Strings verwenden, ohne die Abfrage WHERE Funktioniert es ganz gut, doch sobald ich die Abfrage WHERE in das Statement mit reinschreibe funktioniert garnichts mehr.

    Ich bekomme keine Fehlermeldungen.

    Lg Lucas

    Montag, 29. März 2021 19:49
  • Hallo Lucas,

    dann setz doch bitte mal einen Breakpoint auf die Zeile, in der das SQL Statement zusammengebaut wird, starte das Debugging mit F5 in Visual Studio, lauf bis zu dem Haltepunkt, gehe einen Schritt im Debugger weiter und schau dir dann dann, was genau in deiner Variablen "query" steht. Das nimmst Du dann und führst es mal mit einem anderen Tool wie bspw. HeidiSQL, ... direkt gegen die Datenbank aus und schaust, ob da dann Ergebnisse kommen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport

    Montag, 29. März 2021 19:55
    Moderator
  • Hey, vielen dank für die Hilfe, konnte das Problem lösen.

    Lg Lucas

    Montag, 29. März 2021 22:59