如何在C#中使用mysql数据库插入数据
问题描述:
string query2 = "INSERT INTO library_database.status_of_issue VALUES('";
query2 = query2 +textBox2.Text + "','";
query2 = query2 + textBox1.Text + "', CURDATE(),ADDDATE(CURDATE(), INTERVAL 14 DAY)";
cmd = new MySqlCommand(query2, con);
MySqlDataReader d1 = cmd.ExecuteReader();
MessageBox.Show("Issed...");
d1.Close();
答
缺少的价值观条款收盘parenthesys,但您的查询应该被重写,以避免Sql Injection和INSERT查询与ExecuteNonQuery
string query2 = @"INSERT INTO library_database.status_of_issue VALUES(@p1, @p2,
CURDATE(),ADDDATE(CURDATE(), INTERVAL 14 DAY))";
cmd = new MySqlCommand(query2, con);
cmd.Parameters.AddWithValue("@p1", textBox2.Text);
cmd.Parameters.AddWithValue("@p2", textBox1.Text);
int rows = cmd.ExecuteNonQuery();
if(rows > 0)
MessageBox.Show("insert OK...");
答
所以非常明显。您错过了VALUES的结尾部分。这应该工作:
string query2 = string.Format("INSERT INTO library_database.status_of_issue VALUES('{0}', '{1}', CURDATE(), ADDDATE(CURDATE(), INTERVAL 14 DAY))", textBox2.Text, textBox1.Text);
using(var cmd = new MySqlCommand(query2, con))
{
if(cmd.ExecuteNonQuery() > 0)
MessageBox.Show("Issed...");
}
另请注意,INSERT,UPDATE和DELETE命令应使用ExecuteNonQuery()
执行。
错误执行来,有在SQL语法错误。 – 2014-09-10 16:03:21
你可以添加错误信息吗? – EWit 2014-09-10 16:07:18