【问题标题】:sql where clause with multiple conditions c# web service [duplicate]具有多个条件的sql where子句c#Web服务[重复]
【发布时间】: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 是动态的,数量可以更少或更多

【问题讨论】:

  • 拆分字符串并从那里构建命令...

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


【解决方案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)
      };
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-13
      • 1970-01-01
      • 2019-02-09
      • 2012-08-24
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 2020-12-23
      相关资源
      最近更新 更多