首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OleDbDataAdapter空参数值

OleDbDataAdapter空参数值
EN

Stack Overflow用户
提问于 2014-06-19 22:24:37
回答 2查看 612关注 0票数 0

如果一个或多个参数为空,我必须对database.What进行一个相当复杂的查询? SQL会忽略它还是返回一个错误?我应该如何处理空参数?我对SQL还是个新手。

代码语言:javascript
复制
OleDbDataAdapter adapter1 = new OleDbDataAdapter("SELECT ID FROM table WHERE age>? AND children>? ORDER BY children ASC", conection);    
adapter.SelectCommand.Parameters.AddWithValue("p1", age);           
adapter.SelectCommand.Parameters.AddWithValue("p2", number_of_children);

除了为每种情况编写不同的查询外,当我有一个空的(null内容)参数时,我如何处理查询?

编辑:这只是一个简单的例子,我的查询大约有5个参数

EN

回答 2

Stack Overflow用户

发布于 2014-06-19 22:28:09

x > null将始终为false。因此,如果您的任何一个参数值为null,您将不会得到任何记录。你可以这样做:

代码语言:javascript
复制
OleDbDataAdapter adapter1 = new OleDbDataAdapter(
    "SELECT ID FROM table WHERE (age> NVL(?,-1)) AND (children> NVL(?,-1) ORDER BY children ASC", conection);    
adapter.SelectCommand.Parameters.AddWithValue("p1", age);           
adapter.SelectCommand.Parameters.AddWithValue("p2", number_of_children);

假设agechildren总是非负的。

票数 0
EN

Stack Overflow用户

发布于 2014-06-19 22:28:33

您可以检查该值,如果该值为null,则可以将DBNull.Value

代码语言:javascript
复制
if(age>0)
adapter.SelectCommand.Parameters.AddWithValue("p1",  age);
else
adapter.SelectCommand.Parameters.AddWithValue("p1",  DBNull.Value);       
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24308985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档