none
[C#]Mysql Connection / eintrag Frage RRS feed

  • Frage

  • Hallo freunde Ich habe ein paar fragen ich habe eine mysql db per php myadmin erstellt die db bzw der table nennt sich "user_table" die einträge nennen sich "id" ,"Name" ,"Verfügbar","cja","bnein","sjetzt","kspaeter","bok","enabled","update","now","verfuegbar" so nun habe ich etwas mit dem mysqlconnector herumgespielt ich probiere das nun seit knapp 4 std aber ich bekomme es ums verrecken einfach nicht hin in den table "user_table" einen eintrag zu machen der die einträge enthält + daten eben also ich hab mir das so vorgestellt ich hab mehrere textboxen in die ich dann namen/daten eintrage zb so textbox1 = <"Hier die ID" zb 1 usw das ganze wird dann so eingetragen id = 1 , Name = test , Verfügbar = ja ,cja = 1 , bnein = 0, sjetzt = 0 , kspaeter = 0,bok = 1 ,enabled = 1 ,update = 0 ,now = 0 ,verfügbar = 1. wie bekomm ich das am besten hin? ich dreh hier gleich am rad da ich es nicht hinbekomme. ich hoffe ihr könnt mir helfen Vielen dank schonmal Mfg
    Samstag, 16. Juli 2011 18:12

Antworten

  • Ne, ging nicht mit den Absätzen, daher bitte nochmal nachformatieren.

    So tu ich mir das nicht nochmal an.

     

    string sql = "INSERT INTO <Tabelle> ( Spalte1, Spalte2 ) VALUES ( @Param1, @Param2 )";
    MySqlCommand cmd = new MySqlCommand( sql, conn );
    
     cmd.Parameters.AddWithValue( "@Param1", "Wert für Spalte1" );
     cmd.Parameters.AddWithValue( "@Param2", 123 );
     cmd.ExecuteNonQuery();
    
    


    Aber wie gesagt, in der Hilfe zum MySql Connector für .NET steht das und auch vieles andere hilfreiches Zeugs.

      http://dev.mysql.com/doc/refman/5.6/en/connector-net-programming-prepared.html

     


    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



    Samstag, 16. Juli 2011 18:46
    Moderator
  • Hi,
    SqlConnection conn;

    string sql = "INSERT INTO user_table ( id, user  ) VALUES ( @Param1, @Param2 )";
    MySqlCommand cmd = new MySqlCommand(sql, conn);

    ...

    aber das geht nicht ,da bekomm ich folgenden fehler

    Fehler    2    2-Argument: kann nicht von "System.Data.SqlClient.SqlConnection" in "MySql.Data.MySqlClient.MySqlConnection"

    nuja, Du arbeitest ja auch mit MySql. Also kanns Du auch nicht einfach eine SqlConnection erzeugen, die ist für Microsoft SQL Server gedacht, nicht für MySql. Für letztere gibts dann MySqlConnection.

    Zudem musst Du die Verbindung natürlich auch erstmal aufbauen, sonst kann dein Statement gar nicht ausgeführt werden.

    In deinem Fall kannst Du bei new MySqlCommand( ..., conn ) einfach conn durch dein Connection Objekt (cnMySQL) ersetzen.

     


    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
    Samstag, 16. Juli 2011 19:13
    Moderator
  • Hi,

    beachte bitte auch, dass viele Bezeichner auch reservierte Worte sein könnten. In dem Fall müsstest Du die Objektnamen (Tabellen- und Spaltennamen) entsprechend den MySQL Vorgaben angeben. Siehe dazu auch:

      http://dev.mysql.com/doc/refman/5.6/en/reserved-words.html

     

     


    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
    Samstag, 16. Juli 2011 19:24
    Moderator

Alle Antworten

  • hi da musst du dann schon ein mysqlcommand objekt mit den mysqlparametern aufbauen und das dann gegen die datenbank absetzen das sollte nicht so schwer sein die doku gibt ja dazu einiges her auf keinen fall solltest du einfach einen string zusammenbasteln in dem die werte drinstehen sqlparameter sind sehr sinnvoll damit du keine sqlinjection probleme bekommst grundsätzlich ist das aber alles kein hexenwerk die doku liest sich doch gut einach mal reinschauen im tutorial ist sogar ein beispiel für ein insert into in eine tabelle enthalten das wäre das was du suchst

    ---

    Es ist echt bemerkenswert. So besch****en zu schreiben hat mich erheblich Mühe gekostet. So ganz ohne Punkt, Komma oder gar Groß- und Kleinschreibung fällt einem nicht nur das lesen unheimlich schwer sondern auch das schreiben.

    @moepaka: Falls es immer noch nicht klar sein sollte: Bitte gib dir zumindest ein wenig Mühe, deine Postings mit Absätzen, Kommata, Punkten, Groß- und Kleinschreibung halbwegs ordentlich zu gestalten. Von dem Kram, den Du da gepostet hast, kriegt man ja Augenkrebs.

     


    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
    Samstag, 16. Juli 2011 18:34
    Moderator
  • hallo

    hmmmmmmmm ich hab irgendiwe absätze eingefügt irgendwie hat er das nicht übernommen ,ich hoffe nun geht es.

    also

    ich habe die mysql connection erfolgreich eingebaut und auch aufgebaut ,die verbindung ist kein problem

    ala

            private void MySql(string server)
            {
                string connString = "SERVER=ip"+ ";" + "DATABASE=test;" + "UID=test;" + "PASSWORD=123456;";
                MySqlConnection cnMySQL = new MySqlConnection(myConnectionString);
                MySqlCommand cmdMySQL = cnMySQL.CreateCommand();
                MySqlDataReader reader;
                cmdMySQL.CommandText = "select * from user_table";
                cnMySQL.Open();
                reader = cmdMySQL.ExecuteReader();
                while (reader.Read())
                {
                    string thisrow = "";
                    for (int i = 0; i < reader.FieldCount; i++)
                        thisrow += reader.GetValue(i).ToString() + ",";
                    Console.WriteLine(thisrow);
                }
                cnMySQL.Close();
            }


    aber wie trage ich nun in den user_table die sachen ein die ich oben genannt habe.

    mfg

     

     

    ps er übernimmt schon wieder kein absätze


    edit : ah jetzt geht es
    • Bearbeitet moepaka Samstag, 16. Juli 2011 18:47
    Samstag, 16. Juli 2011 18:45
  • Ne, ging nicht mit den Absätzen, daher bitte nochmal nachformatieren.

    So tu ich mir das nicht nochmal an.

     

    string sql = "INSERT INTO <Tabelle> ( Spalte1, Spalte2 ) VALUES ( @Param1, @Param2 )";
    MySqlCommand cmd = new MySqlCommand( sql, conn );
    
     cmd.Parameters.AddWithValue( "@Param1", "Wert für Spalte1" );
     cmd.Parameters.AddWithValue( "@Param2", 123 );
     cmd.ExecuteNonQuery();
    
    


    Aber wie gesagt, in der Hilfe zum MySql Connector für .NET steht das und auch vieles andere hilfreiches Zeugs.

      http://dev.mysql.com/doc/refman/5.6/en/connector-net-programming-prepared.html

     


    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



    Samstag, 16. Juli 2011 18:46
    Moderator
  • ja genau so hab ichs auch versucht aber er kackt (auf deutsch gesagt :) ) immer bei mir ab ,ich werde es nochmal so probieren.

    ich danke dir vielmals.

    PS:

    bei

    MySqlCommand cmd = new MySqlCommand( sql, conn );

    was ist dort der parameter "conn" ?
    Samstag, 16. Juli 2011 18:57
  • ja genau so hab ichs auch versucht aber er kackt (auf deutsch gesagt :) ) immer bei mir ab


    Das ist ungefähr dasselbe als wenn ich dir sage: "Mein Auto fährt nicht. Warum?"

    Wenn es nicht funktioniert, wäre es sehr hilfreich zu wissen, was genau wie nicht funktioniert. Welche Fehlermeldung kommt (genau und vollständig)? Poste bitte auch den relevanten Code, mit dem Du es probiert hast.

     


    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
    Samstag, 16. Juli 2011 19:00
    Moderator
  • ja sorry :)

     

    also fehler bekomme ich keine ,er trägt es einfach nicht ein

     

    ich habe es nun mal so versucht

     

     SqlConnection conn;
                string sql = "INSERT INTO user_table ( id, user  ) VALUES ( @Param1, @Param2 )";
                MySqlCommand cmd = new MySqlCommand(sql, conn);

                cmd.Parameters.AddWithValue("@Param1", "Wert für Spalte1");
                cmd.Parameters.AddWithValue("@Param2", 123);
                cmd.ExecuteNonQuery();

    aber das geht nicht ,da bekomm ich folgenden fehler

     

    Fehler    2    2-Argument: kann nicht von "System.Data.SqlClient.SqlConnection" in "MySql.Data.MySqlClient.MySqlConnection"

    Samstag, 16. Juli 2011 19:03
  • Hi,
    SqlConnection conn;

    string sql = "INSERT INTO user_table ( id, user  ) VALUES ( @Param1, @Param2 )";
    MySqlCommand cmd = new MySqlCommand(sql, conn);

    ...

    aber das geht nicht ,da bekomm ich folgenden fehler

    Fehler    2    2-Argument: kann nicht von "System.Data.SqlClient.SqlConnection" in "MySql.Data.MySqlClient.MySqlConnection"

    nuja, Du arbeitest ja auch mit MySql. Also kanns Du auch nicht einfach eine SqlConnection erzeugen, die ist für Microsoft SQL Server gedacht, nicht für MySql. Für letztere gibts dann MySqlConnection.

    Zudem musst Du die Verbindung natürlich auch erstmal aufbauen, sonst kann dein Statement gar nicht ausgeführt werden.

    In deinem Fall kannst Du bei new MySqlCommand( ..., conn ) einfach conn durch dein Connection Objekt (cnMySQL) ersetzen.

     


    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
    Samstag, 16. Juli 2011 19:13
    Moderator
  • Hi,

    beachte bitte auch, dass viele Bezeichner auch reservierte Worte sein könnten. In dem Fall müsstest Du die Objektnamen (Tabellen- und Spaltennamen) entsprechend den MySQL Vorgaben angeben. Siehe dazu auch:

      http://dev.mysql.com/doc/refman/5.6/en/reserved-words.html

     

     


    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
    Samstag, 16. Juli 2011 19:24
    Moderator