执行插入时出现 SQL 错误:'s' 附近的语法不正确
Getting SQL error when executing INSERT: Incorrect syntax near 's'
我正在尝试创建一个 Windows 表单,当我在其中输入数据并单击提交时,它会将数据插入到我的数据库中。它适用于较短的东西,但是当我尝试输入一些较长的句子时,它会这样说:
这是代码:
private void SubmitButton_Click(object sender, EventArgs e)
{
con.Open();
cmd = new SqlCommand("INSERT INTO Jokes VALUES('" + EnterJoke.Text + "', '" + EnterAnswer.Text + "')", con);
cmd.ExecuteNonQuery();
MessageBox.Show(" Data Has Been Saved In Database ");
con.Close();
}
我在这一行收到错误:
cmd.ExecuteNonQuery();
输入文本必须包含特殊字符标点符号,因为您的代码正在进行纯连接,所以该符号不会被视为文字文本的一部分。
尝试使用以下代码解决两个问题:
- 最重要的是 SQL 注入漏洞。
- 其次,你的问题(如果与输入字符串有特殊字符有关)
private void SubmitButton_Click(object sender, EventArgs e)
{
SqlParameter joke = new SqlParameter();
joke.ParameterName = "@joke";
joke.SqlDbType = SqlDbType.VarChar;
joke.Value = EnterJoke.Text;
SqlParameter answer = new SqlParameter();
answer.ParameterName = "@answer";
answer.SqlDbType = SqlDbType.VarChar;
answer.Value = EnterAnswer.Text;
cmd = new SqlCommand("INSERT INTO Jokes VALUES(@joke, @answer)", con);
cmd.Parameters.Add(joke);
cmd.Parameters.Add(answer);
con.Open();
cmd.ExecuteNonQuery();
MessageBox.Show(" Data Has Been Saved In Database ");
con.Close();
}
我正在尝试创建一个 Windows 表单,当我在其中输入数据并单击提交时,它会将数据插入到我的数据库中。它适用于较短的东西,但是当我尝试输入一些较长的句子时,它会这样说:
这是代码:
private void SubmitButton_Click(object sender, EventArgs e)
{
con.Open();
cmd = new SqlCommand("INSERT INTO Jokes VALUES('" + EnterJoke.Text + "', '" + EnterAnswer.Text + "')", con);
cmd.ExecuteNonQuery();
MessageBox.Show(" Data Has Been Saved In Database ");
con.Close();
}
我在这一行收到错误:
cmd.ExecuteNonQuery();
输入文本必须包含特殊字符标点符号,因为您的代码正在进行纯连接,所以该符号不会被视为文字文本的一部分。
尝试使用以下代码解决两个问题:
- 最重要的是 SQL 注入漏洞。
- 其次,你的问题(如果与输入字符串有特殊字符有关)
private void SubmitButton_Click(object sender, EventArgs e)
{
SqlParameter joke = new SqlParameter();
joke.ParameterName = "@joke";
joke.SqlDbType = SqlDbType.VarChar;
joke.Value = EnterJoke.Text;
SqlParameter answer = new SqlParameter();
answer.ParameterName = "@answer";
answer.SqlDbType = SqlDbType.VarChar;
answer.Value = EnterAnswer.Text;
cmd = new SqlCommand("INSERT INTO Jokes VALUES(@joke, @answer)", con);
cmd.Parameters.Add(joke);
cmd.Parameters.Add(answer);
con.Open();
cmd.ExecuteNonQuery();
MessageBox.Show(" Data Has Been Saved In Database ");
con.Close();
}