日期:2014-05-18  浏览次数:21093 次

.net 连接oracle 中查询条件为NULL的代码该怎么写
我写了查询的:
C# code
ExecuteDataset(Util.CommonUtil.AppDefaultString, CommandType.Text, "select 端口位置, 端口编号, 端口类型, 联接端口, 联接设备, 联接状态, 端口号, s1, s2, s3 from V_机房二级端口 where 站点号=:p0 and 端口位置=:p1 and 联接状态=:p2 and 端口类型=:p3 and s1=:p4 and s2=:p5 and s3=:p6 ", new OracleParameter[] { new OracleParameter("p0", v_机房号), new OracleParameter("p1", v_端口位置), new OracleParameter("p2", v_联接状态), new OracleParameter("p3", v_端口类型), new OracleParameter("p4", v_s1), string.IsNullOrEmpty(v_s2) ? new OracleParameter("p5", DBNull.Value) : new OracleParameter("p5", v_s2), string.IsNullOrEmpty(v_s3) ? new OracleParameter("p6", DBNull.Value) : new OracleParameter("p6", v_s3) }); 

现在的问题是当条件 比如S1为NULL时查询不出来,如何不修改commandtext 来查询条件为NULL?

比如用.NET自带的oraclecommand是不是commandtext也要动态生成的?
C# code
select * from t1 where c1=:p0

要根据P0的情况生成2中SQL语句?我想应该不用的吧?求解

------解决方案--------------------
直接sql搞定 ISNULL()函数
------解决方案--------------------
最好用楼上的方法:具体如下:

select cas when s1 is null then NUll end from talbe 。。。
------解决方案--------------------
...oracel not sql server
------解决方案--------------------
假设你的字段是xxoo,判断为空的可以这么写,decode(xxoo,null,0,1)=0,