这是我的代码:
con.Open();
String query = "INSERT INTO tbl_score (personality,style,poise,audience,total) VALUES ('" +
textBox1.Text + "','" + textBox2.Text + "','" +textBox3.Text + "','" +
textBox4.Text + "','" + textBox5.Text + "',)";
MySqlDataAdapter SDA = new MySqlDataAdapter(query, con);
SDA.SelectCommand.ExecuteNonQuery();
con.Close();
MessageBox.Show("Succesfully Voted");
我收到此错误:
您的SQL语法有错误;检查手册 对应于您的MariaDB服务器版本,以获得正确的语法 在第1行附近')'
答案 0 :(得分:3)
你应该总是(没有例外!)使用参数进行查询 - 它首先避免了互联网上的#1威胁 - SQL注入 - 它也是避免使用字符串等引用的杂乱问题。
试试这段代码:
string query = "INSERT INTO tbl_score (personality, style, poise, audience, total) " +
"VALUES (@personality, @style, @poise, @audience, @total);";
using (MySqlCommand cmd = new MySqlCommand(query, con))
{
// set the parameter values
cmd.Parameters.Add("@personality", MySqlDbType.VarChar, 100).Value = textBox1.Text;
cmd.Parameters.Add("@style", MySqlDbType.VarChar, 100).Value = textBox2.Text;
cmd.Parameters.Add("@poise", MySqlDbType.VarChar, 100).Value = textBox3.Text;
cmd.Parameters.Add("@audience", MySqlDbType.VarChar, 100).Value = textBox4.Text;
cmd.Parameters.Add("@total", MySqlDbType.VarChar, 100).Value = textBox5.Text;
// open connection, execute INSERT query, close connection
con.Open();
int rowsInserted = cmd.ExecuteNonQuery();
con.Close();
}
MessageBox.Show("Succesfully Voted");
此外,您应该使用最合适的数据类型作为参数 - 如果值数字(我怀疑是@total
),那么您应该使用数值数据类型 - 不要将所有内容都转换为字符串 - 使用正确的数据类型。
答案 1 :(得分:0)
你需要在结束括号之前删除逗号(,)。
您的查询必须
String query = "INSERT INTO tbl_score (personality,style,poise,audience,total) VALUES ('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "')";