具有多个条件的sql where子句c#Web服务[重复]

Posted

技术标签:

【中文标题】具有多个条件的sql where子句c#Web服务[重复]【英文标题】:sql where clause with multiple conditions c# web service [duplicate] 【发布时间】:2017-01-18 09:21:19 【问题描述】:

我正在用 c# 创建一个 web 应用程序,并且我有多个 id。

看起来是这样的:

string id = "17359,17355,17460,16834";

这是我存储在我的字符串中的四个不同的 id

现在这是我的 sqlcommand

sqlcommand cmd=new sqlcommand("select * from trid where id!=@id",con);
sqlparameter[] param=
new sqlparameter("@id",id)
;

我想要的是,我不想要这些 id 为17359,17355,17460,16834的数据

我想看看剩下的数据

我应该在这里做什么??

id 是动态的,数量可以更少或更多

【问题讨论】:

拆分字符串并从那里构建命令... 【参考方案1】:

如果您的 ID 以逗号分隔,您可以这样做:

SqlCommand cmd = new SqlCommand("select * from trid where id NOT IN (@id)", con);

因此您不必拆分 ID 字符串。

【讨论】:

【参考方案2】:

您必须创建一个函数,该函数将拆分您的字符串并返回您可以在 select 语句中使用的各个值,例如 [select * from SELECT * FROM trid WHERE id NOT IN (select ID from dbo.splitcommaSep(@IDs) )]

请查看以下功能的链接

http://www.aspsnippets.com/Articles/Split-and-convert-Comma-Separated-Delimited-String-to-Table-in-SQL-Server.aspx

【讨论】:

【参考方案3】:

这可能是一种动态方式,但如果您不想看到的 ID 是静态的,这将起作用。

string id1 = "17359";
string id2 = "17355";
string id3 = "17460";
string id4 = "16834";

sqlcommand cmd=new sqlcommand("SELECT * FROM trid WHERE id NOT IN (@id1, @id2, @id3, @id4)",con);
sqlparameter[] param=
new sqlparameter("@id",id)
;

【讨论】:

id 是动态的,可以更多 见***.com/questions/16842263/… 如果该链接解决了问题,请将其关闭

以上是关于具有多个条件的sql where子句c#Web服务[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用具有一个条件的 WHERE 子句运行 100 个 SQL 查询,还是使用具有 100 个条件的 WHERE 子句的一个查询更好?

具有另一个 sql 语句的 where 子句中的 case 条件

Linq to SQL 多个条件 where 子句

在 where 子句中具有多个条件的 PDO 准备语句

where条件放在子SQL语句中是否查询速度更快?

SQL/Impala:将多个查询(具有不同的 where 子句)合并为一个