MySQL与C#(Windows窗体)的集成不起作用?

MySQL与C#(Windows窗体)的集成不起作用?,c#,mysql,.net,database,winforms,C#,Mysql,.net,Database,Winforms,我正在用C制作一个Windows窗体应用程序# 在WAMP的帮助下,我有一个正在运行的MySQL数据库。我已经在我的项目中引用了MySQL dll。我没有从控制台或代码本身收到任何错误。然而,我的问题是我的SQL命令不起作用,我不知道为什么 代码如下: private void ConnectToDB(String title, String content, String price) { db_connection(); MySqlCommand cm

我正在用C制作一个Windows窗体应用程序# 在WAMP的帮助下,我有一个正在运行的MySQL数据库。我已经在我的项目中引用了MySQL dll。我没有从控制台或代码本身收到任何错误。然而,我的问题是我的SQL命令不起作用,我不知道为什么

代码如下:

private void ConnectToDB(String title, String content, String price)
    {
        db_connection();
        MySqlCommand cmd = new MySqlCommand();
        cmd.CommandText = "INSERT INTO testing.customers (itemTitle, itemContent, itemPrice) VALUES('" + title + "', '" + content + "', '" + price + "');";
        cmd.Connection = connect;
        connect.Close();
    }

private void db_connection()
    {
        try
        {
            conn = "Server=localhost;Database=testinbg;Uid=TheAdmin;Pwd=dsa67as7d66asd;";
            connect = new MySqlConnection(conn);
            connect.Open();
        } catch (Exception e)
        {
            MessageBox.Show(e.ToString());
        }
    }
我已授予用户“TheAdmin”所有权限?我错过了什么吗?:)

您必须执行查询:

  cmd.EndExecuteNonQuery();
实施

  conn = "Server=localhost;Database=testinbg;Uid=TheAdmin;Pwd=dsa67as7d66asd;";
  ...
  // Wrap IDisposable (i.e. MySqlConnection) into "using"
  using (var connect = new MySqlConnection(conn)) 
  {
    connect.Open();    
    using (MySqlCommand cmd = new MySqlCommand()) 
    {
      cmd.Connection = connect;
      cmd.CommandText = @"INSERT INTO...";    
      cmd.EndExecuteNonQuery();
    }
  }

您没有执行查询。此外,您的查询当前容易受到SQL注入攻击。您应该使用参数化查询来防止上述攻击。我已更改您的查询,使其参数化

string sqlQuery = "INSERT INTO testing.customers (itemTitle, itemContent, itemPrice) VALUES(@title, @content, @price)";
using (var connection = new SqlConnection("connectionString"))
{
    using (var cmd = new SqlCommand(sqlQuery, connection))
    {
        cmd.Parameters.Add("@title", SqlDbType.NVarChar).Value = title;
        ...
        connection.Open();
        cmd.ExecuteNonQuery(); //You were missing this
    }
}

阅读更多关于

的信息,我看不到您正在执行查询。使用cmd.ExecuteNonQuery();是否值得添加一个使用参数化查询以避免SQL注入的建议?