C#和MySQL命令 - 两个不同的syles?

时间:2016-07-23 04:55:27

标签: c# mysql

所以,经过几个小时的学习MySQL并试图让我的代码工作。我找到了至少两种不同的方法来设置SQL命令。从那时起,我希望在使用C#的MySQL中有一个普遍的问题。

这两个命令有什么区别:

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

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

是一个优先于另一个吗?

我已经运行了两个,两者似乎都可以在我的数据库表中插入数据。我不知道它是否有助于回答它,但这是我的代码:

 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 个答案:

答案 0 :(得分:1)

不,AFAIK他们都是一样的,做同样的事情。 conn.CreateCommand()实际上会返回一个新的MySqlCommand实例。

正如Documentation明确指出

  

创建并返回与之关联的SqlCommand对象   的SqlConnection。