M@anish Ответов: 1

Необходимо объявить скалярную переменную "@devicecode". Незамкнутая кавычка после строки символов ".


Я нашел эту ошибку пожалуйста помогите мне кто нибудь

это код, как показано ниже :-
private void button1_Click(object sender, EventArgs e)
       {
           SqlConnection con = new SqlConnection("Data Source=sapserver;Initial Catalog=eSSLSmartOffice;Persist Security Info=True;User ID=sa;Password=kanik_delta@123");
           con.Open();
           //sda = new SqlDataAdapter("select DeviceCode,LogDateTime, EmpCode = '" + textBox1.Text + "' from compact WHERE LogDateTime =  '" +dateTimePicker1.Value + "'", con);
           SqlDataAdapter sda = new SqlDataAdapter("select @DeviceCode,@LogDateTime, @EmpCode = '" + textBox1.Text + "' from compact WHERE @LogDateTime BETWEEN '" + textBox2.Text + "' AND '" + textBox3.Text + "", con);
           dt = new DataTable();
           sda.Fill(dt);
           dataGridView1.DataSource = dt;
           //MessageBox.Show("Inserted sucessfully");
       }

       private void button2_Click(object sender, EventArgs e)
       {
           SqlConnection con = new SqlConnection("Data Source=sapserver;Initial Catalog=eSSLSmartOffice;Persist Security Info=True;User ID=sa;Password=kanik_delta@123");
           con.Open();
          // sda = new SqlDataAdapter("UPDATE compact SET LogDateTime =  '" + textBox2.Text + "', con);
           SqlDataAdapter sda = new SqlDataAdapter("update compact set @LogDateTime=" + textBox2.Text + "where @EmpCode=" + textBox1.Text + "", con);
           dt = new DataTable();
           sda.Fill(dt);
           dataGridView1.DataSource = dt;

       }
   }


Что я уже пробовал:

Must declare the scalar variable "@DeviceCode". Unclosed quotation mark after the character string ''.

Richard MacCutchan

Я не думаю, что вам нужны символы " @ " для имен столбцов в вашем операторе SELECT.

1 Ответов

Рейтинг:
2

Patrice T

Совет: никогда не создавайте "sql-запрос" путем конкатенации с пользовательскими вводами, это опасно для вашей базы данных и подвержено ошибкам.
SQL-инъекция-Википедия[^]
SQL-инъекция[^]

Обратите внимание, что в SELECT, textBox1.Text встроен в кавычки

EmpCode = '" + textBox1.Text + "'

но обновление ООН, textBox1.Text не является
@EmpCode=" + textBox1.Text + ""

Это, вероятно, ошибка.