2013-07-15 2 views
1

나는이 코드를 가지고 곳에서 선택하는 SqlCommand하는 아래해야 :이 문제

그것은 나에게이 오류 제공
Select column odjezd 
From table stanice 
Order by odjezd 
where akce=zakce.Text 

SqlCommand combobox = new SqlCommand("SELECT odjezd FROM stanice 
             ORDER BY odjezd ASC 
             WHERE akce="+zakce.Text, spojeni); 

: WHERE 근처의 구문이 잘못되었습니다.

내 코드를 개선 해주시겠습니까? 사전에 덕분에

답변

2

이 코드를보십시오 :

SqlCommand combobox = new SqlCommand("SELECT odjezd FROM stanice WHERE akce='"+zakce.Text + "' ORDER BY odjezd ASC", spojeni); 

를 내가 당신을 위해 일하는 것이 바랍니다.

ORDER BY 

가야한다.

3

ORDER BY 데이터에 대한

  • 첫 번째 쿼리
  • 그에 따라

그래서 것 주문 후 마지막으로 ....

당신을 위해 가야한다 다음과 같이됩니다 :

var command new SqlCommand("SELECT odjezd FROM stanice WHERE akce=" 
          + zakce.Text + " ORDER BY odjezd ASC", spojeni) 
+2

*** 당신은 *** 항상 parametrized 쿼리를 사용해야합니다 - 이와 같이 SQL을 연결하지 마십시오 - SQL 주입 공격에 매우 취약합니다 .... –

2

어디까지 주문 하시겠습니까?

1

ORDER BY는 어디를 따라 가야합니까? 나는 당신이 찾고있는 것을 하나씩 인용해야한다고 생각합니다.

SqlCommand combobox = new SqlCommand("SELECT odjezd FROM stanice WHERE akce='"+zakce.Text + "' ORDER BY odjezd ASC", spojeni); 
4

당신은 ORDER BY 절은 마지막이어야이야 그리고 당신은 WHERE 절에서 문자열 주위에 작은 따옴표가 누락되었습니다.

그런데 SQL 삽입을 방지하기 위해 명령 텍스트 대신 문자열 조작을 사용해야합니다.

var command = new SqlCommand("SELECT odjezd FROM stanice WHERE [email protected] ORDER BY odjezd ASC", spojeni); 
command.Parameters.Add(new SqlParameter("@akce", zakce.Text)); 
1

귀하의 문은 SELECT 문 주문의 아래로 편리한 실행이 (다른 장소 사이에) 여기에서 찾을 수 있습니다 올바르게 정렬되지 않습니다 귀하의 경우 그래서

http://msdn.microsoft.com/en-us/library/ms189499.aspx, 당신이 thusly 히 명세서를 주문 할 것 :

SELECT odjezd 
FROM stanice 
WHERE ... 
ORDER BY odjezd ASC 

Woni가 지적했듯이 당신이 올바른 데이터 유형을 적용, 잠재적 인 공격으로부터 사용자를 보호하기 위해, SqlCommand.Parameters를 사용하는 경우, 그것은 또한 좋을 것이다.