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附近的语法不正确。

有人能改进我的代码吗?提前感谢

SqlCommand从哪里选择问题

您的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来强制执行正确的数据类型,并保护您免受潜在的攻击,那也会更好。