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.
因此,经过许多小时的学习 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.