2012-10-14 4 views
0

테이블에서 모든 데이터를 삭제하려고하는데 index = Textbox1.Text 및 idnmb = Textbox2.Text 이 부분을 제거하면 + "AND id_nmb ="+ data2이 작동하지만 원하는 것은 아닙니다. 그것은 나에게이 메시지를 제공여러 조건이있을 때 테이블에서 값을 삭제하는 방법은 무엇입니까?

private void button1_Click(object sender, RoutedEventArgs e) 
     { 
      var data1 = this.textBox1.Text; 
      var data2 = this.textBox2.Text; 


      OleDbCommand cmd = new OleDbCommand("DELETE FROM Table WHERE index = " + data1 + "AND idnmb = " + data2 , con); 

      cmd.Connection = con; 

      int temp = cmd.ExecuteNonQuery(); 

      if (temp > 0) 
      { 
       MessageBox.Show("OK !"); 
      } 
      else 
      { 
       MessageBox.Show("Some error !"); 
      } 
     } 
     } 

: 하나 개 이상의 필수 매개 변수에 대해 주어진 없음 값

나는이 코드를 가지고있다. 어떻게 해결할 수 있을까요?

답변

1

간단한 대답은 문자열 앞에 AND가 있어야 할 가능성이 높습니다. 숫자가 각 텍스트 상자에 입력된다고 가정하는 것처럼 보이지만이를 적용하지 않으므로 해당 텍스트 상자의 내용에 따라 다른 오류가 발생할 수 있습니다.

더 이상 답변하지 마십시오.이 방법이 아닙니다. SQL Injection attacks으로 코드를 여는 중입니다. 대신 매개 변수가있는 쿼리를 shown in this reference으로 사용하십시오.

+0

전에 AND를 넣지 만 동일한 오류가 발생하고 data1 만 숫자이고 data2는 텍스트입니다. 어떻게 시행 할 수 있습니까? – user1742537

+0

data2가 인용 부호를 추가해야하는 텍스트 인 경우 "AND idnmb = '"+ data2 + "'" –

+0

고맙습니다. 매개 변수화 된 쿼리를 사용해야합니다.하지만 초보자는 충분합니다. 시작합니다. :) – user1742537

관련 문제