SqlCommand从哪里选择问题
本文关键字:选择 问题 SqlCommand | 更新日期: 2023-09-27 18:22:31
我得到了下面的代码,应该是:
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
附近的语法不正确。
有人能改进我的代码吗?提前感谢
您的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));
ORDER BY
必须走到最后。。。。
你
- 第一次查询您的数据
- 相应地订购后
所以它会变成:
var command new SqlCommand("SELECT odjezd FROM stanice WHERE akce="
+ zakce.Text + " ORDER BY odjezd ASC", spojeni)
请尝试以下代码:
SqlCommand combobox = new SqlCommand("SELECT odjezd FROM stanice WHERE akce='"+zakce.Text + "' ORDER BY odjezd ASC", spojeni);
我希望这对你有用。
ORDER BY
必须走到最后。
Where子句位于的订单之前
ORDER BY应该在WHERE之后,我相信您需要一个关于搜索内容的引号。
SqlCommand combobox = new SqlCommand("SELECT odjezd FROM stanice WHERE akce='"+zakce.Text + "' ORDER BY odjezd ASC", spojeni);
如果您的语句排序不正确,可以在这里(以及其他地方)找到SELECT语句排序的方便运行:http://msdn.microsoft.com/en-us/library/ms189499.aspx
所以在你的情况下,你会想这样命令你的声明:
SELECT odjezd
FROM stanice
WHERE ...
ORDER BY odjezd ASC
正如Woni所指出的,如果您使用SqlCommand.Parameters
来强制执行正确的数据类型,并保护您免受潜在的攻击,那也会更好。