2013-07-15 89 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

而你***總是應該使用參數化查詢 - 不要像這樣連接你的SQL - 極易受SQL注入攻擊.... –

1

訂購訂購之前的推移應該去哪裏後,我相信你會需要一個單引號arount你要搜索的內容。

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你的情況

所以,你想正是如此訂購您的發言:

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

由於沃尼指出,這也將是更好,如果你使用的SqlCommand.Parameters,執行正確的數據類型,並保護您免受潛在的漏洞。