MySQL与C#(Windows窗体)的集成不起作用?
我正在用C制作一个Windows窗体应用程序# 在WAMP的帮助下,我有一个正在运行的MySQL数据库。我已经在我的项目中引用了MySQL dll。我没有从控制台或代码本身收到任何错误。然而,我的问题是我的SQL命令不起作用,我不知道为什么 代码如下: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
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注入的建议?