Синтаксическая ошибка C# (отсутствует оператор) в выражении запроса
Я получаю эту ошибку на cmd.ExecuteNonQuery()
... Я думаю, что я не прав на cmd.CommandText
...
Синтаксическая ошибка (отсутствует оператор) в выражении запроса 'Nr_Crt='1'и Varsta '3'и KG '2'и Specie 'Iepure'и Risc'Nu' и Tip1 'Diurn' и Tip2 'Carnivor''.
private void button2_Click_1(object sender, EventArgs e)
{
if (txtNr_Crt.Text != " " & txtVarsta.Text != " " & txtKG.Text != " " & txtSpecie.Text != " " & txtRisc.Text != " " & txtTip1.Text != " " & txtTip1.Text != " " & txtTip2.Text != "")
{
cn.Open();
cmd.CommandText = "DELETE from Animale Where Nr_Crt='" + txtNr_Crt.Text + "' and Varsta '" + txtVarsta.Text + "' and KG '" + txtKG.Text + "' and Specie '" + txtSpecie.Text + "' and Risc'" + txtRisc.Text + "' and Tip1 '" + txtTip1.Text + "' and Tip2 '" + txtTip2.Text + "'";
cmd.ExecuteNonQuery();
cn.Close();
loaddata();
txtNr_Crt.Text = "";
txtVarsta.Text = "";
txtKG.Text = "";
txtSpecie.Text = "";
txtSex.Text = "";
txtRisc.Text = "";
txtTip1.Text = "";
txtTip2.Text = "";
}
}
3 ответа
Ваш код уязвим для внедрения SQL, я бы это исправил.
Проблема в том, что вам не хватает =
от каждого вашего последующего and
"S:
cn.Open();
cmd.Parameters.AddWithValue("@Nr_Crt", txtNr_Crt.Text);
cmd.Parameters.AddWithValue("@Varsta", txtVarsta.Text);
cmd.Parameters.AddWithValue("@KG", txtKG.Text);
cmd.Parameters.AddWithValue("@Specie", txtSpecie.Text);
cmd.Parameters.AddWithValue("@Risc", txtRisc.Text);
cmd.Parameters.AddWithValue("@Tip1", txtTip1.Text);
cmd.Parameters.AddWithValue("@Tip2", txtTip2.Text);
cmd.CommandText = "DELETE from Animale Where Nr_Crt= @Nr_Crt and Varsta = @Varsta and KG = @KG and Specie = @Specie and Risc = @Risc and Tip1 = @Tip1 and Tip2 = @Tip2";
cmd.ExecuteNonQuery();
cn.Close();
Это должно исправить это (и риск внедрения SQL)
Ваш запрос неверен. Вам не хватает =
при сравнении столбцов
cmd.CommandText = "DELETE from Animale Where Nr_Crt='" + txtNr_Crt.Text + "' and Varsta='" + txtVarsta.Text + "' and KG='" + txtKG.Text + "' and Specie='" + txtSpecie.Text + "' and Risc='" + txtRisc.Text + "' and Tip1='" + txtTip1.Text + "' and Tip2='" + txtTip2.Text + "'";
foreach(Control ctrl in this.Controls)
{
if (ctrl is TextBox)
{
ctrl.text="";
}
}
Для очистки всего текстового поля сразу:) вы можете создать метод, который выполняет его, когда вам это нужно