2011-09-27 4 views
1

나는이 SQL 쿼리를 excute에 노력하고 있어요SQL 하위 쿼리 구문 asp.net

Dim str As String = "UPDATE table1 SET " & _ 
      "number = '" & strc & "'," & _ 
      "code = '" & "123" & "'," & _ 
      "line= '" & dd1.text & "'," & _ 
      "sellr = '" & txtrun.text & "'," & _ 
      "endu= '" & txtex1.value+txtex2.value & "'" & _ 
      "WHERE number IN (select table1.number" & _ 
"FROM table1 INNER JOIN table2 ON table1.number = table2.number" & _ 
"WHERE ((table1.username)='" & session("username") & "' AND (table1.pass)='" & session("pass") & "' AND (table2.sellnum)='" & session("sellnum") & "'));" 

가 쿼리 식에 구문 오류가 있으며 이것이 내가

모든 필드 중첩 된 하위 쿼리를 사용하고 소리지르 처음 문자열을 받고 누군가가 내가

+1

귀하의 코드는 [SQL Injection] (http://en.wikipedia.org/wiki/SQL_injection)에 열려 있습니다. 매개 변수화 된 쿼리를 사용해야합니다. – Oded

+0

동의 Oded ... 이러한 매개 변수를 사용하고 업데이트를 수행하는 저장 프로 시저를 만듭니다. –

답변

4

당신이 놓치고있는 공간후 매우 감사하게 될 것입니다이 쿼리를 작성하는 올바른 접근 방식이 무엇인지 말해 줄 수 있다면

그래서 값 하위 쿼리의 필드는및 table2.number입니다.

이 쿼리를 어디에서 사용하고 있는지 알 수는 없지만, SQL injection에 대해 읽어보십시오. 문자열을 하나로 묶어 SQL을 작성하면 코드가 응용 프로그램의 필드에 SQL 코드를 삽입하는 악의적 인 사용자에게 취약해질 수 있습니다.

+2

SQL 인젝션에 대한 또 다른 유용한 링크 : http://stackoverflow.com/questions/332365/xkcd-sql-injection-please-explain – bfavaretto

+1

유용하고 재미 있습니다. 고마워, @bfavaretto. –

+0

SQL 주입이 문제 일 수 있다고 생각하십니까? –