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;
    }


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




    经验在于积累----武二郎
  • 相关阅读:
    准备工作
    个人作业感言
    年度书单-结对编程
    案例分析
    编程作业_词频统计
    2、阅读任务
    1、准备工作
    个人作业获奖感言
    3 20210405-1 案例分析作业
    202103226-1 编程作业
  • 原文地址:https://www.cnblogs.com/zhanghai/p/4461198.html
Copyright © 2011-2022 走看看