2016-07-23 8 views
2

Also, nach vielen Stunden des Lernens MySQL und versuchen, meinen Code zu arbeiten. Ich habe mindestens zwei verschiedene Möglichkeiten gefunden, den SQL-Befehl einzurichten. Von daher habe ich hoffentlich eine allgemeine Frage in MySQL mit C#.C# und MySQL Command - zwei verschiedene Syle?

Was ist der Unterschied zwischen diesen beiden Befehle:

MySqlCommand cmd = new MySqlCommand(); 
cmd.Connection = conn; 

und

MySqlCommand cmd; 
cmd = conn.CreateCommand(); 
cmd.Connection = conn; 

Ist übereinander bevorzugt?

Ich habe beide ausgeführt und beide scheinen gut zu arbeiten, Einfügen von Daten in meiner db-Tabelle. Ich weiß nicht, ob es sie beantworten helfen werde, aber hier ist mein Code:

public static void AddSong(Songs s) 
    { 
     MySqlConnection conn; 
     string myConnectionString; 

     myConnectionString = "server=127.0.0.1;uid=root;" + 
      "pwd=mysql;database=MySQL_TestDB;"; 

     conn = new MySqlConnection(); 
     conn.ConnectionString = myConnectionString; 

      try 
      { 
       conn.Open(); 
      } 
      catch (MySqlException ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 


     string query = "INSERT INTO Songs (Title, Artist) VALUES (" + 
        "@Title, " + 
        "@Artist)"; 

     /* 
     MySqlCommand cmd; 
     cmd = conn.CreateCommand(); 
     cmd.Connection = conn; 
     */ 

     MySqlCommand cmd = new MySqlCommand(); 
     cmd.Connection = conn; 
     cmd.CommandText = query; 

     cmd.Parameters.AddWithValue("@Title", s.Name); 
     cmd.Parameters.AddWithValue("@Artist", s.Artist); 
     cmd.ExecuteNonQuery(); 

     conn.Close(); 
    } 
+1

Ich denke, das ist die gleiche Frage wie bei Ihnen http://stackoverflow.com/questions/1302855/is-there-any-difference-between-sqlconnection-createcommand-and-new-sqlcommand – Terminus

+0

@Terminus, Wow Ich verbrachte wirklich fast 20 Minuten damit, nach einer Antwort zu suchen. Ich wusste einfach nicht, was ich eintippen sollte. Vielen Dank! –

+1

Ich google 'C# Unterschied zwischen SQL-Befehl und createcommand' erstes Ergebnis für mich. Ein paar interessante Ergebnisse nach, obwohl – Terminus

Antwort

1

NO, AFAIK sie sind beide gleich und macht das Gleiche. conn.CreateCommand() gibt tatsächlich eine neue MySqlCommand Instanz zurück.

Als Documentation sagt deutlich

Erstellt und gibt ein SqlCommand-Objekt mit dem SqlConnection verbunden.

+0

Dank @Rahul und @Termininus! –

+0

Obwohl die verknüpfte Dokumentation für 'SqlCommand' ist, wird es auch für die' MySqlCommand' Klasse dasselbe Verhalten geben. – Rahul

+0

Ich frage mich, ob das mit Absicht gemacht wurde? Ich benutze den SqlCommand mit MS SQL Server und benutze gerade MySQL. Ich musste ein paar Dinge ändern, wie du 'MySqlCommand' erwähnt hast, und eine funky Sache mit der Verbindungszeichenfolge (die übrigens ewig dauerte). Danke noch einmal. –

Verwandte Themen