C#中SQL语句中的WHERE子句

本文关键字:WHERE 子句 语句 SQL | 更新日期: 2023-09-27 18:23:50

我试图为WHERE子句定义两个条件:

WHERE Date = @date (already implemented)
and
WHERE Type = @currenttype

代码如下:

string sql = string.Format("SELECT Result FROM {0} WHERE Date = @date", hostnameclear);

我是使用两个WHERE子句,还是可以指定两个条件?

C#中SQL语句中的WHERE子句

您不需要两个WHERE子句。

这是正确的:

WHERE Date = @date
AND Type = @currenttype

我建议您使用参数化查询而不是string.Format,因为您正在向SQL注入开放代码。

使用动态SQL仍然可以做到这一点(在指定表名时,可能需要动态SQL)。

尝试

SELECT Result FROM {0} WHERE Date = @date and Type = @currenttype 

只需删除第二个"Where"将执行任务

您不需要第二个WHERE子句:以下语句属于该上下文,您可以将它们与AND连接起来,下一个子句将以下一个命令(如ORDER BY)开头。

您只需要一个WHERE:

SELECT Result FROM {0} WHERE Date = @date AND Type = @type

我会有一个where语句。

string sql = string.Format("SELECT Result FROM {0} WHERE Date = @date AND Type = @currenttype", hostnameclear);
where data = @data AND somecolumn = issomething.

其中包含"answers"语句。

用C#、Java、Perl编程时的最佳实践是通过使用命令行工具(如sqlplus或任何其他sql提示符)确保sql语法正确。这对此类错误有很大帮助。