具有多个条件的sql where子句c#web服务

时间:2017-01-18 09:21:19

标签: c# sql-server web-services where-clause

我正在使用c#创建一个网络应用,我有多个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)
};

我想要的是,我不希望数据包含这些内容17359,17355,17460,16834

我希望看到剩下的数据

我应该在这做什么?

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

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

可能是一种动态的方法,但如果您不想看到的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)
};

答案 2 :(得分:0)

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

请查看以下功能链接

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