sql
  • oledb
  • 2009-05-19 8 views 0 likes 
    0

    코드 :구문 오류

    string query1 = @"UPDATE global_mapping set escape_id = " + 
        dataGridView1.Rows[i].Cells[2].Value + ",function_id = " + 
        dataGridView1.Rows[i].Cells[3].Value + ",function_name = '" + 
        dataGridView1.Rows[i].Cells[4].Value + "',parameter_name = '" + 
        dataGridView1.Rows[i].Cells[5].Value + "',parameter_validity = '" + 
        dataGridView1.Rows[i].Cells[6].Value + "',statusparameter_id = " + 
        dataGridView1.Rows[i].Cells[7].Value + ",acb_datatype = '" + 
        dataGridView1.Rows[i].Cells[8].Value + "',data_type_id = " + 
        dataGridView1.Rows[i].Cells[9].Value + ",bit_size = " + 
        dataGridView1.Rows[i].Cells[10].Value + ",validity_status ='" + 
        dataGridView1.Rows[i].Cells[11].Value + "',validity_func = '" + 
        dataGridView1.Rows[i].Cells[12].Value + "'WHERE global_mapping.parameter_id =" + 
        dataGridView1.Rows[i].Cells[1].Value + ""; 
    OleDbCommand cmd1 = new OleDbCommand(query1, conn); 
    cmd1.ExecuteNonQuery(); 
    

    코드 종료 : 나는 위의 코드를 실행하면

    내가 오류라는 "업데이트 문에 구문 오류"를 얻을. 누군가 해결 방법을 알려주시겠습니까?

    +0

    빠른 응답을 주셔서 감사합니다하지만 어떻게 SQL 매개 변수를 사용하십시오 –

    답변

    1

    와우. 우리는 말할 수 ... SQL 주입?

    매개 변수를 사용해보십시오. 뿐만 아니라 자신을 보호 할 것이지만 SQL은 훨씬 더 읽기 쉽습니다.

    1

    SQL 쿼리를 작성하는 데 문자열 연결을 사용하지 마십시오. SQL 매개 변수를 사용하십시오.

    0

    Yikes! 마지막 query1 값을 입력하고 형식을 지정하여 더 나은 그림을 얻을 수있게하십시오. 내 추측은 실종 됐어.

    0

    나는 거기에 몇 개의 따옴표가 누락되어 있다고 말하고 싶지만 코드는 그렇게 말할 수 없다. 코드를 수정하지 않으면 최소한 query1 덤프를 제공하여 실제 쿼리를 읽을 수 있습니다.

    매개 변수 나 이전 응답과 같은 저장 프로 시저를 사용하십시오. 그 중 하나가 귀찮은 것을 덮어 쓰게하는 변수 중 하나이며 서버는 테이블을 삭제하거나 악화시키는 사람 모두에게 열려 있습니다.

    로컬 "안전한"데이터베이스 인 경우에도 나쁜 습관을 지금은 잊어 버려야합니다.

    2

    WHERE 절 앞에 공백을 추가해야합니다. 창을 콘솔에 인쇄 query1의 값을 참조 Console.WriteLine(query1)

    OleDbCommand cmd1 = new OleDbCommand(query1, conn); 전에이 도움이

    희망,

    +0

    나쁜 SQL 구문은 그의 걱정의 최소한입니다. –

    +3

    아마도,하지만 나는 여기서 십자군에 머물러 있지 않습니다. –

    -1

    을 넣습니다.
    SQL 문이 정상적으로 보입니까? 내 생각 엔 그렇지 않습니다. 이제는 숫자가 아니며 그리드에서 비어있는 필드를 찾을 수 있습니다.

    다른 매개 변수를 사용하십시오.

    +0

    답장에 어떤 문제가 있습니까? 투표를 중지 할 때는 이유를 기입하십시오. – shahkalpesh

    관련 문제