zoukankan      html  css  js  c++  java
  • 关于sql多条件查询,但又不确定值的个数的方法。

    主要用到sql的isnull方法 和 DBNull.Value。


    isnull(参数1,参数2) 判断参数1 是否为NULL,如果是 返回参数2 否则返回参数1.

    select ... where cxljdzj_isvip=isnull(@ckb,cxljdzj_isvip)....  判断@ckb是否为null,如果为null则where cxljdzj_isvip=cxljdzj_isvip,如果不为null则cxljdzj_isvip=@ckb。

    其中 where cxljdzj_isvip=cxljdzj_isvip 意思就是查询所有的数据,跟没有这个where约束一样。

    还有一个问题,new SqlParameter("@ckb",ckb), 在参数化数值的时候,如果ckb为null,则报错。(需要参数 '@ckb',但未提供该参数。)

    因为此null为c#的,而DbNull.Value才是数据库中的null,我们传入参数,如果你给参数@ckb赋值为null,相当于没赋,因为cmd.Parameters[@ckb].Value的默认值就是null,而不是DbNull.Value。所以综上所诉,使用这个方法的时候,必须先判断是否为Null或者空字符串。如果是,则必须将DbNull.Value 赋值给 ckb.

    即: if (ckb == null || ckb.ToString() == "")
    {
    ckb = DBNull.Value;
    }


    其他多条件的。也依次类推即可。




    经验在于积累----武二郎
  • 相关阅读:
    jetty插件配置
    连接Oracle时ORA-12541 TNS 无监听程序
    查看表结构
    判断时间差,返回1或2或3
    template_共享模板
    template_showpost
    template_homepage
    tensorflow解决Fizz Buzz 的问题
    神经网络——项目二CNN手写数字识别
    神经网络——项目一 手写数字识别
  • 原文地址:https://www.cnblogs.com/zhanghai/p/4461198.html
Copyright © 2011-2022 走看看