具有多个条件的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 子句的一个查询更好?