2010-02-18 6 views
0

와 테이블, 내 응용 프로그램에서 실행 조건 문제 SQL 서버 2005을 사용하여

VB.Net

사용하고 3 텍스트 상자를 업데이트

내가 condtion

와 텍스트 상자의 값을 사용하여 내 테이블을 업데이트 할
Textbox1.text = Date 
Textbox2.text = TimeIn 
Textbox3.text = TimeOut 

를 들어

Textbox1.text = 23/02/2009 
Textbox2.text = 10:00 - HH:mm 
Textbox3.text = 18:00 

쿼리

,369 어떤 사람이 나에게이 오류에 대한 해결책을 줄 수

"int 데이터 형식 '23/02/2009 '는 VARCHAR 값을 변환 할 때 변환 실패"로 1,363,210

update table1 set TimeIn = '" & Textbox2.Text & "', NewDate = case when CAST(LEFT('" & Textbox2.Text & "', 2) AS INT) > CAST(LEFT('" & Textbox3.Text & "', 2) AS INT) then '" & Textbox1.Text & "' + 1 else '" & Textbox1.Text & "' end, TimeOut = '" & Textbox3.Text & "' Where Date = '" & Textbox1.Text & "' 

위의 쿼리는 오류를 보이고있다.

질문이 없습니다.

답변

1

먼저 예제와 같은 문자열을 사용하여 SQL 문을 작성하는 대신 매개 변수를 사용해야하므로 SQL 주입 공격의 희생양이되고 싶지 않습니다. saftey 이상 경고하지만 그 옆으로 난 것은에서 :

`'" & Textbox1.Text & "' + 1 ` 

될해야

DATEADD(day, 1,'" & Textbox1.Text & "') 

이 후 현재까지 일일를 추가합니다