0
Ошибка:Синтаксическая ошибка во время вставки данных с использованием MySQL
Incorrect Syntax near 's'. unclosed quotation mark after the charater string ');'.
Код:
private void btnAdd_Click(object sender, EventArgs e)
{
SqlConnection cn = new SqlConnection(global::CIMT.Properties.Settings.Default.Database2ConnectionString);
try
{
string sql = "INSERT INTO Students(Student_Id,First_Name,Last_Name,Fathers_Name,DOB,Mobile,Address,Post_Code) VALUES('"+this.txtId.Text+"','"+this.txtFName.Text+"','"+this.txtLName.Text+"','"+this.txtFaName.Text+"','"+this.txtDOB.Text+"','"+this.txtMob.Text+"','"+this.txtAddress.Text+"','"+this.txtPostCode.Text+ "');";
SqlCommand exesql = new SqlCommand(sql, cn);
cn.Open();
exesql.ExecuteNonQuery();
MessageBox.Show("Add new record done !!" , "Message" , MessageBoxButtons.OK , MessageBoxIcon.Information);
this.studentsTableAdapter.Fill(this.database2DataSet.Students);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message , "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
cn.Close();
}
}
Этот подход уязвим к SQL-инъекции. Пожалуйста, для всех нас, параметризуйте свои запросы. Это почти наверняка устранит эту синтаксическую ошибку. –
Вы получаете входные данные как «мир привет», то это не ускользает, и вы получаете ошибку, так как предложено выше (SQL-инъекция), лучше пойти с параметризованными запросами. –
[Дайте мне параметризованный SQL или дайте мне смерть] (http://blog.codinghorror.com/give-me-parameterized-sql-or-give-me-death/) –