1

我在下面得到了这段代码,应该:

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

有人可以改进我的代码吗?提前致谢

4

6 回答 6

5

You'reORDER BY子句必须是最后一个,并且您在子句中的字符串周围缺少单引号WHERE

顺便说一句,您应该对命令文本使用参数而不是字符串操作,以防止 SQL 注入。

var command = new SqlCommand("SELECT odjezd FROM stanice WHERE akce=@akce ORDER BY odjezd ASC", spojeni);
command.Parameters.Add(new SqlParameter("@akce", zakce.Text));
于 2013-07-15T20:49:10.393 回答
3

ORDER BY必须到最后....

  • 第一次查询您的数据
  • 相应地订购后

所以它会变成这样:

var command new SqlCommand("SELECT odjezd FROM stanice WHERE akce="
                             + zakce.Text + " ORDER BY odjezd ASC", spojeni)
于 2013-07-15T20:46:56.867 回答
2

Where 子句在 order by 之前

于 2013-07-15T20:47:13.743 回答
2

请尝试以下代码:

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

我希望它对你有用。

ORDER BY

必须最后走。

于 2013-07-17T07:14:47.440 回答
1

ORDER BY 应该在 WHERE 之后,我相信你需要一个单引号来围绕你正在搜索的内容。

SqlCommand combobox = new SqlCommand("SELECT odjezd FROM stanice WHERE akce='"+zakce.Text + "' ORDER BY odjezd ASC", spojeni);
于 2013-07-15T20:48:45.630 回答
1

您的语句排序不正确,可以在此处(在其他地方)找到一个方便的 SELECT 语句排序:http: //msdn.microsoft.com/en-us/library/ms189499.aspx

所以在你的情况下,你会想要这样订购你的陈述:

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

SqlCommand.Parameters正如 Woni 所指出的,如果您使用, 来强制执行正确的数据类型并保护您免受潜在攻击,那也会更好。

于 2013-07-15T20:54:53.417 回答