C# 和 MySQL 命令 - 两种不同的风格?

C# and MySQL Command - two different syles?

因此,经过许多小时的学习 MySQL 并尝试让我的代码工作。我发现至少有两种不同的方法来设置 SQL 命令。由此,我希望在 MySQL using C# 中有一个一般性问题。

这两个命令有什么区别:

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

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

一个比另一个更受欢迎吗?

我 运行 两者都在我的数据库 table 中插入数据时似乎都能正常工作。我不知道它是否有助于回答这个问题,但这是我的代码:

 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();   
    }

不,据我所知,它们都是一样的,做同样的事情。 conn.CreateCommand() 实际上 returns 一个新的 MySqlCommand 实例。

正如 Documentation 明确指出的那样

Creates and returns a SqlCommand object associated with the SqlConnection.