我的代码如下:
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
附近的语法不正确。
有人请改进我的代码吗? 提前致谢
答案 0 :(得分:5)
您的ORDER 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));
答案 1 :(得分:3)
ORDER BY
必须持续......
你
所以它会变成:
var command new SqlCommand("SELECT odjezd FROM stanice WHERE akce="
+ zakce.Text + " ORDER BY odjezd ASC", spojeni)
答案 2 :(得分:2)
Where子句在命令之前
答案 3 :(得分:2)
请尝试以下代码:
SqlCommand combobox = new SqlCommand("SELECT odjezd FROM stanice WHERE akce='"+zakce.Text + "' ORDER BY odjezd ASC", spojeni);
我希望它适合你。
ORDER BY
必须走到最后。
答案 4 :(得分:1)
ORDER BY应该追踪WHERE,我相信你需要一个单一的引用,而不是你正在寻找的东西。
SqlCommand combobox = new SqlCommand("SELECT odjezd FROM stanice WHERE akce='"+zakce.Text + "' ORDER BY odjezd ASC", spojeni);
答案 5 :(得分:1)
你的陈述没有正确排序,可以在这里(在其他地方)找到一个方便的SELECT语句排序:http://msdn.microsoft.com/en-us/library/ms189499.aspx
因此,在您的情况下,您可能希望如此订购您的陈述:
SELECT odjezd
FROM stanice
WHERE ...
ORDER BY odjezd ASC
正如Woni指出的那样,如果您使用SqlCommand.Parameters
来强制执行正确的数据类型并保护您免受潜在攻击,那也会更好。